symfony #authentication
#symfony #аутентификация
Вопрос:
Я пытаюсь обновить приложение Symfony с 4.1 до 4.4, и у меня ошибка аутентификации в SecurityController, который у меня есть
public function loginAction (Request $request)
{
/* var AuthenticationUtils $authUtils */
$authUtils= $this->get('security.authentication_utils');
// get the login error if there is one
$error = $authUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authUtils->getLastUsername();
return $this->render('admin/user/login.html.twig', array(
'error' => $error,
'last_username' => $lastUsername,
));
}
но после обновления у меня возникает эта ошибка
как я могу решить эту ошибку?
Комментарии:
1. Вы должны использовать внедрение конструктора или внедрить службу в действие контроллера
2. Просто для информации, вы получаете эту ошибку, потому что вы перешли с контроллера на AbstractController для вашего базового класса контроллера. Ожидайте увидеть ошибку такого рода каждый раз, когда вы используете $this->get() . Вы можете остаться с исходным классом контроллера, если хотите. Просто означает, что вы не можете обновиться до 5.x.
3. Как обычно, пожалуйста, делитесь всеми сообщениями об ошибках в текстовой форме вместе с вашими попытками решить проблему. Насколько я вижу, ошибка содержит довольно очевидный намек на то, как устранить ошибку
Ответ №1:
.. как упоминалось @dbrunmann
public function loginAction (Request $request, AuthenticationUtils $authUtils)
{
// get the login error if there is one
$error = $authUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authUtils->getLastUsername();
return $this->render('admin/user/login.html.twig', array(
'error' => $error,
'last_username' => $lastUsername,
));
}
Использовать php bonconsole debug:autowiring <some_service_name>
— чтобы узнать, какой typhint использовать для получения правильной службы
Например, php binconsole debug:autowiring utils
даст вам