Как перенаправить на две разные функции «Действие» в одном контроллере с помощью аннотации — Symfony2

Недавно я перешел с Symfony 2.4 на Symfony 2.7.

Поэтому я следил за новыми документами. Теперь скажем, у меня есть 2 action functions в одном контроллере.

public function indexAction() {}

public function changeRateAction()

Раньше я бы маршрутизировал их с помощью routing.yml

change_interest_rate_label:
    path: /change_interest_rate
    defaults: { _controller: appBundle:appInterestRateChange:index }

change_interest_rate_action_label:
    path: /change_interest_rate_and_archived_action
    defaults: { _controller: appBundle:appInterestRateChange:changeRate }

Теперь в документах версии 2.7 аннотации поощряются. Внутри controller файла

/**
 * @Route("/home", name="homepage")
 */

Это запустит метод действия, содержащийся в файле контроллера. Но как я могу написать аннотации для двух методов для разных URL-адресов, включенных в один и тот же файл контроллера?

Это означает, что у меня есть indexAction и changeRateAction в одном файле контроллера. Я хочу направить URL-адрес /home с функцией index и /change с функцией changeRate. Как это сделать с помощью аннотаций? Я знаю, как это сделать с помощью routing.yml


person AtanuCSE    schedule 11.11.2015    source источник


Ответы (1)


На самом деле вы используете маршрутизацию аннотаций для метода, а не для контроллера.

Вы просто указываете маршрут перед каждым методом. В вашем случае это будет примерно так:

/**
 * @Route("/home", name="homepage")
 */
public function indexAction() {
    ...
}

/**
 * @Route("/change", name="changerate")
 */
public function changeRateAction() {
    ...
}

Не забудьте прочитать больше о маршрутизации в документации: http://symfony.com/doc/current/book/routing.html

person Andrius    schedule 11.11.2015
comment
Ах! пропустил его. Идеальный. Спасибо. - person AtanuCSE; 11.11.2015