Symfony2,缺少控制器配置路由的第一个字母

时间:2014-02-18 12:35:34

标签: symfony

在命令'route:debug'后,我在控制台中遇到了一个奇怪的错误。

`
[Symfony\Component\Config\Exception\FileLoaderLoadException] 
Cannot import resource "....../src/Acme/MyBundle/Resources/config/routes.yml"
from "....../app/config/routing.yml". 
(Class could not be determined for Controller identified by 
"Acme\MyBundle\Controller
\ ageController"
`

在Acme / MyBundle / config / routes.yml中我有

resource: "Acme\MyBundle\Controller\PageController"

从app / config / routing.yml链接

resource: "@AcmeMyBundle/Resources/config/routes.yml" 

通过检查代码,似乎由于某种原因Yaml::parse($path)$config['resource']中将控制器名称返回为“ageController”,而没有“P”字母

......我哪里错了?

非常感谢

-------- EDIT -------

感谢@piotrekkr的有用回复。

通过转义“P”字符,它可以工作。谢谢Piottekr

所以它变成了:

Acme\MyBundle\Controller\\PageController

1 个答案:

答案 0 :(得分:3)

我认为原因是\P是YAML中的特殊字符。来自http://yaml.org/spec/1.2/spec.html#id2776092

  

5.7。逃脱的角色

     

必须转义所有不可打印的字符。 YAML逃脱序列   使用大多数现代计算机语言常用的“\”符号。每   转义序列必须解析为适当的Unicode字符。   原始转义序列是演示细节,不得为   用于传达内容信息。

     

请注意,转义序列仅以双引号解释   标量。在所有其他标量样式中,“\”字符没有特殊之处   意义和不可打印的字符不可用。

和角色

  

[58] ns-esc-paragraph-separator :: =“P” - 转义的Unicode段落分隔符(#x2029)字符。

尝试在YAML中使用\\P