Привет всем, у меня есть проблема с корневыми аннотациями в Symfony2.Symfony2 Controller Route clash
У меня есть два разных контроллера, которые вызывают методы с одинаковых позиций/тестов URL.
Контроллер 1:
**
* @Route("/test", service="myProject.test.controller.art")
* @Cache(expires="+5 minutes", public=true)
*/
class BlogController
{
/**
* @Route("/{text}", defaults={"text" = null})
* @Route("/topic/{tag}", defaults={"tag" = null})
* @Method({"GET"})
*/
public function listAction(ArtQuery $query)
{
//.................
}
}
Контроллер 2:
**
* @Route("/test" , service="myProject.test.controller.sitemap"))
* @Cache(expires="+5 minutes", public=true)
*/
class SitemapController
{
/**
* @Route("/sitemap.xml/")
* @Method({"GET"})
*/
public function sitemapAction()
{
//..................
}
}
Проблема заключается в том, что второй контроллер никогда не соответствует, только если добавить в мой @route("/sitemap.xml/")
, но я действительно хочу, чтобы маршрут быть только @route("/sitemap.xml")
.
Я думаю, что проблема заключается в том, когда я ввожу url /test/sitemap.xml Symfony рассматривает файл sitemap.xml как/{text} переменный маршрут в первом контроллере.
Могу ли я сделать исключение, так что первый контроллер заканчивается, как только он нажимает sitemap.xml ....?
я прочитал кое-что о требованиях но не тихо понять эту концепцию