Атрибут замещающих ролей FosUser

Я хотел бы переопределить атрибут роли FOSUser в Symfony (3.4), потому что я хочу, чтобы у пользователя была только одна роль.

По умолчанию этот атрибут представляет собой массив, я хочу заменить его строкой. Итак, я думаю, мне нужно переопределить функцию __construct() по умолчанию? Потому что в нем есть такая строка:

$this->roles = array();

Судя по тому, что я нашел в Google, я, возможно, должен использовать аннотацию, подобную приведенной ниже, для моей пользовательской сущности, вы можете подтвердить?

/*
 *  @AttributeOverrides({
 *      @AttributeOverride(name = "roles",
 *          column=@Column(
 *              name     = "roles",
 *              type     = "string",
 *              length   = 30
 *  ))})
 */

Есть ли у меня правильная идея? Как я мог переопределить конструктор или заставить его работать?

Когда я пытаюсь обновить свою базу данных с помощью этой аннотации, я получил следующую ошибку: тип столбца атрибута «роли» в классе «UserBundle \ Entity \ User» не может быть изменен.

iSaiko 14.06.2018 16:06

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

Jason Roman 14.06.2018 18:57
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
2
135
1

Ответы 1

Теперь это невозможно, вы можете переопределить только имя, но вы не можете изменить тип

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