Как я могу ограничить автоматически сгенерированный маршрут, чтобы принимать только запросы POST? - PullRequest
1 голос
/ 26 марта 2019

Мы переопределили сонату RegistrationController, используя Easy Extends. В нашем сгенерированном классе 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 Ответ

2 голосов
/ 26 марта 2019

вы можете проверить, является ли это запрос Post следующим образом:

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

документ Symfony 2.7 сказал

getMethod () Получает запрос "предназначен"method.

может быть, вы можете попробовать это также:

$request->getMethod()
...