我是Symfony2的初学者,我正在研究Symfony2项目,其中一种通用捆绑,比如说CoreBundle,正在管理所有路由(在这种形式中,first.domain / a-route,second.domain / a-route,third.domain / a-route,...)网站。现在我一直在创建FirstBundle,SecondBundle,ThirdBundle,其想法是将每个子域(第一,第二,第三,......)的路由管理“转移”到相关的包。
首先通过编辑/app/config/routing.yml文件将路径从CoreBundle传输到FirstBundle:
resource: "@ProjectFirstBundle/Resources/config/routing.yml"
prefix: /
host: "{subdomain}.{domain}"
defaults: { _controller: ProjectFirstBundle:Public:aroute }
domain: %project_domain%
requirements:
domain: "%project_domain%"
subdomain: 'first'
为:
resource: "@ProjectFirstBundle/Resources/config/routing.yml"
prefix: /
然后使用以下内容创建FirstBundle / Resources / config / routing.yml文件:
project_first_aroute:
path: /a-route
host: "{subdomain}.{domain}"
defaults: { _controller: ProjectFirstBundle:Public:aroute }
domain: %project_domain%
requirements:
domain: "%project_domain%"
subdomain: 'first'
当然,我使用与CoreBundle相同的模式创建了控制器和视图文件(通过对.twig文件进行适配 - 继承)。结果,在运行first.domain / a-route:
时返回以下异常致命错误:未捕获异常'Symfony \ Component \ Yaml \ Exception \ ParseException',消息'无法在第15行解析(靠近“domain:%project_domain%”)。在
有关如何有效实现目标的任何建议?
提前感谢您的帮助。
答案 0 :(得分:1)
我发现我应该创建FirstBundle / Resources / config / routing.yml文件,如下所示:
project_first_aroute:
path: /a-route
host: "{subdomain}.{domain}"
defaults: { _controller: ProjectFirstBundle:Public:aroute, domain: "%project_domain%" }
requirements:
domain: "%project_domain%"
subdomain: 'first'
答案 1 :(得分:0)
错误消息是来自 Yaml 解析器的语法错误。
请注意,正确的标识在Yaml文件中是必不可少的,并检查是否需要在第一次出现时将%project_domain
括在引号中(请参阅stackoverflow语法突出显示,它看起来很奇怪)。
-
在Symfony2中调试路由
app/console router:debug