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

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

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

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

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

4 ответов


попробуй такое

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

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

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

использовать это в routing.yml:

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

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

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

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


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

myproject.com/dev/test

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

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

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

        return new Response();
    }
....