【问题标题】:How do I restrict an auto-generated route to accept only POST requests?如何限制自动生成的路由只接受 POST 请求?
【发布时间】:2019-08-16 16:15:28
【问题描述】:

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

【问题讨论】:

  • 哪个 symfony 版本?
  • 这是 Symfony 2.7

标签: php symfony post routes sonata


【解决方案1】:

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

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

the symfony 2.7 doc said

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

也许你也可以试试这个:

$request->getMethod()

【讨论】:

    猜你喜欢
    • 2020-07-04
    • 2021-04-02
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 1970-01-01
    • 2013-04-30
    相关资源
    最近更新 更多