Вопрос по symfony, php – Как добавить префикс маршрута ко всем контроллерам в Symfony2?

8

Я использую аннотации для определения маршрутов в контроллерах, и у меня есть 15 контроллеров. Все выполнены/path1 , /path2.

Есть ли способ, которым во всех этих контроллерах я могу получить к ним доступ через/admin/path1 а также/admin/path2?

Я не хочу вводить это, изменяя каждый файл.

Могу ли я сделать это из одного места? Я имею в виду, что весь пакет должен открываться через/admin а затем их соответствующие пути.

Ваш Ответ

4   ответа
6

Используйте это вrouting.yml:

Admin:
    resource: "@AdminBundle/Controller"
    type: annotation
    prefix: /admin
15

попробуй это

# app/config/routing.yml
acme_hello:
    resource: "@AcmeHelloBundle/Resources/config/routing.yml"
    prefix:   /admin

или если использовать аннотации

resource: "@AcmeHelloBundle/Controller"
    type:     annotation
    prefix:   /admin
4

Просто определите аннотацию для вашего класса (не для метода)

/**
* @Route("/blog")
*/

http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html#route-prefix

Автор попросил глобальный путь.
Этот метод работает для меня, так как я хотел, чтобы он был на определенном контроллере, а не на всем комплекте.
2

Если вы хотите добавить префикс к конкретному контроллеру DevController, например, и иметь что-то вроде:

myproject.com/dev/test

в вашем контроллере добавьте следующую аннотацию маршрута, как в примере:

    /**
 * @Route("/dev")
 */
class DevController extends Controller{

    /**
     * @Route("/test")
     */
    public function testSavingAction(){

        return new Response();
    }
....

Похожие вопросы