如何将自动生成的路由限制为仅接受POST请求?

时间:2019-03-26 10:08:27

标签: php symfony post routes sonata

我们已使用Easy Extends覆盖了Sonata的RegistrationController。在我们生成的appDevProjectContainerUrlMatcher类中,现在有以下几行:

        if ($pathinfo === '/password/reset') {
            return array (  '_controller' => 'Application\\Sonata\\UserBundle\\Controller\\RegistrationController::passwordResetAction',  '_route' => 'fos_user_password_reset',);
        }

我可以打开自定义的RegistrationController类,然后看到以下内容:

/**
 * @return RedirectResponse
 */
public function passwordResetAction()
{
...
}

现在的问题是:我想使此操作仅接受POST请求。 (除了上面提到的自动生成的类之外,我找不到在明确定义此路由的任何地方。)

===

编辑:这是在Symfony 2.7应用程序中。

1 个答案:

答案 0 :(得分:3)

您可以验证它是否是发帖请求,例如:

if ($request->isMethod('post')) { //    Uppercase request method:POST
    // your code
}

the symfony 2.7 doc said

  

getMethod()获取请求的“预期”方法。

也许您也可以尝试以下方法:

$request->getMethod()