Я работаю с аннотацией маршрутизации Symfony и уже установил http_method_override
в true
Я хочу создать два разных действия, но с другим поведением в соответствии с методом http, как это:
/**
* Event controller.
*
* @Route("/event")
*/
class EventController extends Controller
{
/**
* Lists all Event entities.
*
* @Route("/", name="event")
* @Method("GET")
* @Template() // default template (index.html.twig)
*/
public function indexAction()
{
...
}
/**
* Creates a new Event entity.
*
* @Route("/", name="event_create")
* @Method("POST")
* @Template("...") // a special template new.html.twig
*/
public function createAction(Request $request)
{
...
}
Но когда я пытаюсь получить доступ к / event /, появляется страница 405 со словами:
Не найдено ни одного маршрута для «GET / event /»: метод не разрешен (разрешено: POST)
И когда я пытаюсь перечислить свои маршруты с php app/console router:debug
:
event_create POST ANY ANY /event/
event GET ANY ANY /event/week/{timestamp}
event_new GET ANY ANY /event/new
event_show GET ANY ANY /event/{id}
event_edit GET ANY ANY /event/{id}/edit
event_update PUT ANY ANY /event/{id}
event_delete DELETE ANY ANY /event/{id}
Прости, я только что понял, прочитав мой вопрос, другой метод ниже с путем / событие / неделя / {отметка времени} был назван «событие» тоже : /
Поэтому я переименовал этот метод в event_week, и он работает.
Других решений пока нет …