так в routing.yml У меня есть следующие маршруты, определенные для редактирования и удаления специфических настроек:Symfony2 маршрутизации: Method Not Allowed (Allow: {Метод})
routing.yml:
settings.editDefaults:
path: settings/{id}/defaults/edit/{widgetType}
defaults: { _controller: AppBundle:Settings:editDefaults }
methods: [POST, PUT]
settings.deleteDefaults:
path: settings/{id}/defaults/delete/{widgetType}
defaults: { _controller: AppBundle:Settings:deleteDefaults }
methods: [DELETE]
И в мой контроллер у меня есть правильные действия, определенные: SettingController.php:
/**
* edit the default settings of a hotel/widget
*/
public function editDefaultsAction(Request $request)
{
//Edit logic
}
/**
* delete a default setting of a hotel/widget
*/
public function deleteDefaultsAction($hotelId, $widgetType)
{
//Delete logic
}
Во втором действии мне нужны только id
и widgetType
, поэтому я могу запросить и удалить выбранную запись.
Когда я иду к одному из маршрутов, которые я получаю следующее:
Edit Route Error:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/edit/default": Method Not Allowed (Allow: POST, PUT)
Ошибка при удалении маршрута:
No route found for "GET /settings/2b2acd55-0dd6-11e5-8107-621ae3320fd4/defaults/delete/default": Method Not Allowed (Allow: DELETE)
Но когда я удалите один и оставьте другое, чтобы они работали нормально. Я предполагаю, что это определения пути, которые похожи? Возможно ли, чтобы я сохранил одни и те же пути и не получил эту ошибку? Что я не понимаю?
Спасибо за вашу помощь, ANTH
Эй Jave, спасибо за ответ.Теперь, когда я удалил методы, при удалении он сообщает об ошибке в 'editAction', по какой-либо причине, почему это действие маршрута также вызвано? –
@AnthBieb: вы удалили часть 'methods', но я предлагаю вам ее сохранить; это семантически корректно. ошибка не в маршрутах, а в запросе url (вам нужно вызвать его с помощью метода DELETE, PUT или POST) – DonCallisto
@AnthBieb, не могли бы вы поделиться об ошибке? –