Symfony2:路由控制器和子目录中的视图

时间:2012-03-18 19:32:52

标签: symfony url-routing

我正在开发一个带有前端和后端的捆绑包。我按照有关构建后端和前端部分herehere的控制器和视图的最佳方法的说明进行操作。但我找不到如何在路由配置文件中指定子目录。我试着把它,但它不起作用。

post:
  pattern:  /
  defaults: { _controller: "HavactBlogBundle:Backend/Post:Backend/index" }

4 个答案:

答案 0 :(得分:17)

试试这个:用反斜杠替换斜杠

post:
    pattern:  /
    defaults: { _controller: "HavactBlogBundle:Backend\Post:index" }

答案 1 :(得分:5)

对于那些不希望将其控制器作为服务公开的人(这是问题的间接解决方案),您可以指定路由。

route_name: path: /path defaults: { _controller: BundleName:Namespace/Controller:action }

Namespace是您的Controller目录中的子目录,后跟/将其分开。

其他一切都应该是一样的。

答案 2 :(得分:2)

我将我的控制器暴露为服务

post:
pattern:  /
defaults: { _controller: "my.controller.service.id:indexAction" }

答案 3 :(得分:0)

路由YAML:

defaults: { _controller: Org\FancyBundle\Controller\Page\Blog\CommentsController::fancyAction }

这里的区别在于我不会在字符串周围使用引号,YAML也可以。 在Twig模板中:

{% render "Org\\FancyBundle\\Controller\\Page\\Blog\\CommentsController::listAction" with {} %}

我从来没有遇到任何逃避我知道的问题。 Windows / IIS(叹气)上的Symfony 2.0.9,PHP 5.3.9