Маршрутизация symfony2 с аннотациями не работает - PullRequest
2 голосов
/ 19 сентября 2011

Я только что скачал symfony2 и начинаю играть с маршрутизацией через аннотации. У меня есть app / config / routing.yml, установленный в пакете, который я создал, чтобы использовать аннотации, и я удалил пакет Acme и все ссылки на маршрутизацию к нему. Тем не менее, я попытался создать пару различных аннотаций маршрутов в моем контроллере, таких как @ Route ("/") и @ Route ("/ hello / {name}") , но Меня всегда встречают с ошибкой 404 (используя среду разработки). Если я добавлю маршрут в routing.yml, он будет работать нормально, даже если маршрутизация настроена на использование аннотаций. По какой-то причине мои аннотации, похоже, игнорируются.

Вот мое приложение / config / routing.yml:

DanDefaultBundle:
  resource: "@DanDefaultBundle/Controller/"
  type:     annotation
  prefix:   /

А вот мой метод управления:

/**
 * @Route("/")
 * @Template()
 */
public function indexAction()
{
    return array('name' => 123);
}

Я включил пространство имен Sensio \ Bundle \ FrameworkExtraBundle \ Configuration \ Route - насколько я могу судить, все правильно с тем, что я видел в документации. Что я пропускаю, что заставляет symfony2 игнорировать мои аннотации маршрутизации? Опять же, если я добавлю маршруты в yaml маршрутизации, все будет работать, поэтому мой пакет работает, но аннотации, похоже, игнорируются.

Спасибо!

Dan

UPDATE: Похоже, мне пришлось добавить маршруты к routing_dev.yml в дополнение к routing.yml, так как я работал в среде dev. Я полагаю, что у вас есть разные пути между разработкой и производством? Я полагаю, что нужно будет уделить особое внимание синхронизации этих маршрутов?

Ответы [ 2 ]

4 голосов
/ 19 сентября 2011

Вы случайно удалили включение routing.yml из routing_dev.yml.

1 голос
/ 21 ноября 2013

если вы используете Route Prefix в вашем routing.yml

, вы должны объявить о своем префиксе над объявлением класса следующим образом:

/**
 * @Route("/")
 */
class PostController extends Controller
{
    /**
     * @Route("/")
     * @Template()
     */
    public function indexAction()
    {
    }

    /**
     * @Route("{id}")
     * @Template()
     */
    public function showAction($id)
    {
    }
} 

Как в Sensio FrameworkExtra Bundle Documentation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...