在 YML 中为路由添加前缀 - 只有一个控制器
Posted
技术标签:
【中文标题】在 YML 中为路由添加前缀 - 只有一个控制器【英文标题】:Prefixing routes in YML - only one controller 【发布时间】:2015-11-18 17:48:22 【问题描述】:我对 symfony2 中的路由有疑问:
当我想通过注解为控制器添加前缀时,我这样做:
/**
* @Route("/blog")
*/
class BlogController extends Controller
而且效果很好。但是我怎样才能只使用 YML 来做同样的事情呢?
我知道我可以将它添加到 routing.yml:
mybundle_blog:
resource: "@MybundleBundle/Resources/config/routing.yml"
prefix: /blog
但是路径“/blog”适用于 MybundleBundle 中的所有控制器。我想让它只适用于控制器 BlogController
请帮帮我。 提前谢谢你。
【问题讨论】:
【参考方案1】:在app/config/routing.yml
:
mybundle_blog:
resource: "@MyBundleBundle/Controller/BlogController/"
type: annotation
prefix: /blog
【讨论】:
我之前尝试过这样做,但我收到一条消息“无法加载资源“@MyBundleBundle/Controller/BlogController/”。确保“MyBundleBundle/Controller/BlogController/”捆绑包已正确注册并且在应用程序内核类中加载。如果捆绑包已注册,请确保捆绑包路径“@MyBundleBundle/Controller/BlogController/”不为空。当然,“BlogController”类存在于正确的目录中,当我使用注释时,一切正常。以上是关于在 YML 中为路由添加前缀 - 只有一个控制器的主要内容,如果未能解决你的问题,请参考以下文章
为所有从包路由导入的前缀添加前缀时,如何在 Symfony 包的模板中生成 URL?
一切正常,但我更改了路由文件以添加前缀。它开始显示控制器不存在的反射异常