Symfony2 Route仅在整数时获取参数
Symfony2 Route get parameter only if integer
我在 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 是数字时,才有办法定义参数检查。
只需添加 requirements
参数以仅接受确定路线的数字,如下所示:
Profile_user_profile:
path: /profile/{id}
defaults: { _controller: ProfileBundle:Users:profile }
methods: [get]
requirements: <--- ADDED PARAMETER
id: \d+
有关更多信息,请阅读 Symfony book about Routing。在那里您可以找到有关如何使用路由参数的更多高级示例。
您现在可以像这样在控制器中使用注释来执行此操作:
class UserController extends AbstractController
{
/**
* @Route("/profile/{id}", name="user_profile", requirements={"id"="\d+"})
*/
public function profile($id)
{
// ...
}
}
有关 Symfony's docs 的更多信息
具体来说 defining routing requirements
我在 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 是数字时,才有办法定义参数检查。
只需添加 requirements
参数以仅接受确定路线的数字,如下所示:
Profile_user_profile:
path: /profile/{id}
defaults: { _controller: ProfileBundle:Users:profile }
methods: [get]
requirements: <--- ADDED PARAMETER
id: \d+
有关更多信息,请阅读 Symfony book about Routing。在那里您可以找到有关如何使用路由参数的更多高级示例。
您现在可以像这样在控制器中使用注释来执行此操作:
class UserController extends AbstractController
{
/**
* @Route("/profile/{id}", name="user_profile", requirements={"id"="\d+"})
*/
public function profile($id)
{
// ...
}
}
有关 Symfony's docs 的更多信息 具体来说 defining routing requirements