Как создать 2 действия с одним и тем же путем, но с разными методами http Symfony2

Я работаю с аннотацией маршрутизации 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}

2

Решение

Прости, я только что понял, прочитав мой вопрос, другой метод ниже с путем / событие / неделя / {отметка времени} был назван «событие» тоже : /

Поэтому я переименовал этот метод в event_week, и он работает.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]