Symfony 4 AuthenticationUtils

Я пытаюсь создать логин пользователя с помощью symfony 4 на основе учебника от symfony.com.

Я использовал основной файл services.yaml с кодом ниже.

https://symfony.com/doc/current/security/form_login_setup.html

public function loginAction(Request $request, \Twig_Environment $twigRenderer,AuthenticationUtils $authUtils)
{

// get the login error if there is one
$error = $authUtils->getLastAuthenticationError();

// last username entered by the user
$lastUsername = $authUtils->getLastUsername();return new response($twigRenderer->render('security/login.html.twig', array(
'last_username' => $lastUsername,
'error'         => $error,
)
));
}

Errror:

Контроллер «App \ Controller \ SecurityController :: loginAction ()» требует, чтобы вы указали значение для аргумента «$ authUtils». Либо аргумент имеет значение NULL, и значение NULL не было предоставлено, значение по умолчанию не было предоставлено, либо после этого есть необязательный аргумент.

Я не знаю, как решить это. У кого-нибудь есть предложение?

5

Решение

Я был с той же проблемой .. Попробуйте запустить команду:

composer require security
2

Другие решения

добавьте их в ваш services.yml, чтобы решить эту ошибку:

AppBundle\Controller\:
resource: '../../src/AppBundle/Controller'
public: true
tags: ['controller.service_arguments']

проверить этот вопрос:
простая форма входа в систему с использованием Symfony

надеюсь, это поможет.

0

Я немного опоздал, но все же добавлю сюда, чтобы другие могли сослаться.

Пожалуйста, добавьте autowire: true в сервисную декларацию вашего контроллера. Symfony автоматически введет параметры методов для вас.

0

Решение для меня (с помощью Symfony 4.0) состояло в том, чтобы полностью пройти через шаги Документация по безопасности Symfony. Следуйте им всем, и, скорее всего, у вас все получится.

Я знаю, что мы не должны просто делиться ссылкой, но в этом случае нет конкретного шага, чтобы скопировать этот ответ, сделайте их все, чтобы получить правильный результат.

0

Вы должны проверить файл services.yml и убедиться, что ваш пакет помечен. В моем случае я получил пакет AdminBundle, и мой services.yml выглядит так:

AdminBundle\:
resource: '../../src/AdminBundle/*'
exclude: '../../src/AdminBundle/{Entity,Repository,Tests}'

AdminBundle\Controller\:
resource: '../../src/AdminBundle/Controller'
public: true
tags: ['controller.service_arguments']
0

пожалуйста, сделайте это, это работает для меня

$authUtils = $this->get('security.authentication_utils');
-1
По вопросам рекламы [email protected]