如何限制自动生成的路由只接受 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
}

the symfony 2.7 doc said

getMethod() Gets the request "intended" method.

也许你也可以试试这个:

$request->getMethod()