Symfony2 Route 仅在整数时获取参数
Posted
技术标签:
【中文标题】Symfony2 Route 仅在整数时获取参数【英文标题】:Symfony2 Route get parameter only if integer 【发布时间】:2016-11-25 13:03:55 【问题描述】:我在 routing.yml 文件中定义了路由
一条路线是:
Profile_user_profile:
path: /profile/id
defaults: _controller: ProfileBundle:Users:profile
methods: [get]
第二个是:
Profile_accept_connection_proposal:
path: /profile/acceptProposal
defaults: _controller:ProfileBundle:Users:acceptConnectionProposal
methods: [put]
第一个没有方法的路由:[get] 也监听并 [put] 请求并在第二个 url 到达路由定义之前捕获它。仅当 url 为数字时,是否有方法定义检查参数。
【问题讨论】:
【参考方案1】:只需添加 requirements
参数即可仅接受确定路线的数字,如下所示:
Profile_user_profile:
path: /profile/id
defaults: _controller: ProfileBundle:Users:profile
methods: [get]
requirements: <--- ADDED PARAMETER
id: \d+
更多信息请阅读Symfony book about Routing。在那里您可以找到更多关于如何使用路由参数的高级示例。
【讨论】:
【参考方案2】:您现在可以使用控制器中的注解来执行此操作,如下所示:
class UserController extends AbstractController
/**
* @Route("/profile/id", name="user_profile", requirements="id"="\d+")
*/
public function profile($id)
// ...
更多信息Symfony's docs 具体defining routing requirements
【讨论】:
以上是关于Symfony2 Route 仅在整数时获取参数的主要内容,如果未能解决你的问题,请参考以下文章