我正在开发一个带有前端和后端的捆绑包。我按照有关构建后端和前端部分here和here的控制器和视图的最佳方法的说明进行操作。但我找不到如何在路由配置文件中指定子目录。我试着把它,但它不起作用。
post:
pattern: /
defaults: { _controller: "HavactBlogBundle:Backend/Post:Backend/index" }
答案 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