在Symfony2.4.2中添加需求会引发异常

时间:2014-05-12 15:26:38

标签: symfony routing

在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”)。

3 个答案:

答案 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约束。

在我的试验中添加了一些我发现的东西。

  1. 只能按照我的方式提供字符串作为要求。当我清除缓存时,Symfony返回错误,表示它应该是一个字符串。

  2. 如果你非常热衷它应该是一个数字,就像我一样,在它周围使用双引号:)

    RouteName: path: /tms/{fname}/{lname} defaults: { _controller: MyWorkTMSNewBundle:Testing:show, age:40 } requirements: age: "40"