如何限制自动生成的路由只接受 POST 请求?
How do I restrict an auto-generated route to accept only POST requests?
我们已经使用 Easy Extends 覆盖了 Sonata 的 RegistrationController
。在我们生成的 appDevProjectContainerUrlMatcher
class 中,我们现在有以下几行:
if ($pathinfo === '/password/reset') {
return array ( '_controller' => 'Application\Sonata\UserBundle\Controller\RegistrationController::passwordResetAction', '_route' => 'fos_user_password_reset',);
}
我可以打开我的自定义 RegistrationController
class 并看到以下内容:
/**
* @return RedirectResponse
*/
public function passwordResetAction()
{
...
}
现在的问题是:我想让这个动作只接受 POST 请求。如果没有路由注释,我该怎么做?(我找不到明确定义这条路由的任何地方,不包括上面提到的自动生成的 class。)
===
编辑:这是在 Symfony 2.7 应用程序中。
您可以验证它是否是 Post 请求,例如:
if ($request->isMethod('post')) { // Uppercase request method:POST
// your code
}
getMethod() Gets the request "intended" method.
也许你也可以试试这个:
$request->getMethod()
我们已经使用 Easy Extends 覆盖了 Sonata 的 RegistrationController
。在我们生成的 appDevProjectContainerUrlMatcher
class 中,我们现在有以下几行:
if ($pathinfo === '/password/reset') {
return array ( '_controller' => 'Application\Sonata\UserBundle\Controller\RegistrationController::passwordResetAction', '_route' => 'fos_user_password_reset',);
}
我可以打开我的自定义 RegistrationController
class 并看到以下内容:
/**
* @return RedirectResponse
*/
public function passwordResetAction()
{
...
}
现在的问题是:我想让这个动作只接受 POST 请求。如果没有路由注释,我该怎么做?(我找不到明确定义这条路由的任何地方,不包括上面提到的自动生成的 class。)
===
编辑:这是在 Symfony 2.7 应用程序中。
您可以验证它是否是 Post 请求,例如:
if ($request->isMethod('post')) { // Uppercase request method:POST
// your code
}
getMethod() Gets the request "intended" method.
也许你也可以试试这个:
$request->getMethod()