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

问题描述 投票:1回答:1

我们使用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应用程序中。

php symfony post routes sonata
1个回答
2
投票

你可以验证它是否是Post请求,如:

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

the symfony 2.7 doc said

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

也许你可以尝试这个:

$request->getMethod()
© www.soinside.com 2019 - 2024. All rights reserved.