Хорошо, я предполагаю, что ваша ситуация может быть такой: когда вы проверяете пользователя и он говорит «анонимно», у вас есть кнопка «Войти, чтобы комментировать», которая открывает модальное окно с формой входа, поэтому давайте сначала разберем его, вы должны указать действие формы входа в систему
<form action="{{ url('your_login_handler_url') }}" method="POST(I guess)">
{# here goes your form body #}
</form>
Далее вам следует перезаписать свой аутентификатор, используемый вашей формой / login (имя и код функции взяты из Symfony do c)
class LoginFormAuthenticator extends AbstractFormLoginAuthenticator
Здесь вы должны вставить if if
public function onAuthenticationSuccess(Request $request, TokenInterface $token, $providerKey)
{
// This one
if($request->attributes->get('_route') === 'your article page') {
return new RedirectResponse('your_article_page');
}
if ($targetPath = $this->getTargetPath($request->getSession(), $providerKey)) {
return new RedirectResponse($targetPath);
}
// For example : return new RedirectResponse($this->router->generate('some_route'));
throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
}
Вы также можете переопределить onAuthenticationFailure , чтобы перенаправить обратно на страницу статьи, а не по умолчанию это страница входа (хотя это может и не быть необходимым, я не уверен на 100%, что вы захотите это проверить)
Таким образом, ваша форма комментария к статье не будет даже ничего знать о том, что другая форма отправлено, что не приведет к ошибке проверки.