在Symfony2.4.2中添加需求会引发异常。
routing.yml中的此代码工作正常
RouteName:
path: /tms/{fname}/{lname}
defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 }
requirements:
但是如下所示添加一个要求会引发异常。
RouteName:
path: /tms/{fname}/{lname}
defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 }
requirements:
age:40
我错过了什么吗?
我得到的例外情况如下
FileLoaderLoadException:无法从“Symfony / app / config \ routing.yml”导入资源“/Resources/config/routing.yml”。 (无法在第5行解析(接近“年龄:40”)。)
和
ParseException:无法在第5行解析(接近“age:40”)。
答案 0 :(得分:2)
我认为唯一的问题是缩进
尝试像
RouteName:
path: /tms/{fname}/{lname}
defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 }
requirements:
age:40
答案 1 :(得分:0)
requirements
中的年龄必须是正则表达式,例如
RouteName:
path: /tms/{fname}/{lname}
defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 }
requirements:
age: \d+
请参阅Symfony Routing文档中的Adding Requirements
答案 2 :(得分:0)
感谢John和Ferod的建议。
@Ferodss - 我知道正则表达式有一个选项,但我尝试使用特定的数字。
@John - 你是对的。空间的重要性对我来说是新的。可能这是一个YAML约束。在我的试验中添加了一些我发现的东西。
只能按照我的方式提供字符串作为要求。当我清除缓存时,Symfony返回错误,表示它应该是一个字符串。
如果你非常热衷它应该是一个数字,就像我一样,在它周围使用双引号:)
RouteName:
path: /tms/{fname}/{lname}
defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 }
requirements:
age: "40"