Symfony 4: Логин не работает для токена, но работает для имени пользователя и пароля

Моя проблемная трассировка:

Type error: Argument 4 passed to

Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::__construct() must be of the type array, null given, called in ...\vendor\symfony\security\Core\Authentication\Provider\UserAuthenticationProvider.php on line 90

а дело в том:

  • Когда я пытаюсь войти в систему, имя пользователя и пароль работают, но не токен, и в моем объекте токен определяется как обслуживаемый, как массив
/**
* @ORM\Column(type = "array")
*/
private $role;

то же самое для геттера и сеттера,

поэтому, если я хорошо понимаю, он пытается получить доступ к массиву класса аутентификации конструкции, который является ролью, но он говорит, что роль равна нулю. так что это мой класс входа в систему:

$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();

if ($this->getUser()) {
        $this->addFlash('danger', 'You are already identified on TCELab');
        return $this->redirectToRoute("default");
    }

return $this->render('user/sign_in.html.twig', array(
        'last_username' => $lastUsername,
        'error' => $error,
    ));

обычно это должно работать. Как я могу заставить это работать?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
937
1

Ответы 1

В сущности «Пользователь» установите значение по умолчанию для атрибутов roles.

/**
 * @ORM\Column(type = "array")
 */
private $roles = [];

или же

public function __construct()
{
    $this->roles = [];
}

Спасибо, я нашел, это потому, что я назвал роль и отметил роли ....

Thom 30.05.2018 13:47

Другие вопросы по теме