Symfony2 FOSUserBundle - простой способ избавиться от полей электронной почты пользователя
Поскольку я создаю веб-приложение, которое будет использоваться в исследованиях пациентов в области здравоохранения, я хочу, чтобы все мои пользователи были полностью анонимными. Могу ли я простым способом избавиться от полей email и email_canonical, не переписывая содержимое в самом пакете, например, сделав что-то с моим пользовательским классом в моем собственном пакете?
РЕДАКТИРОВАТЬ: Я сделал это:
/**
* @ORM\Column(nullable=true)
**/
protected $email;
/**
* @ORM\Column(nullable=true)
**/
protected $emailCanonical;
В моем классе сущностей пользователя. Но когда я делаю php-приложение/консольную доктрину:схема:обновление --принудительно я получаю
[Доктрина\ORM\Отображение\Исключение сопоставления]
Дублирующее определение столбца "электронная почта" в сущности "Pan100\Moodlogbundle\Enti
ty\Пользователь" в сопоставлении столбцов поля или дискриминатора.
ПРАВКА 2: Забыл сказать, что это делается в классе, расширяющем пользователя класса модели FOUserBundle в качестве базового пользователя...
1 answers
ХОРОШО!
Я сделал:
...
/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(name="email", column=@ORM\Column(nullable=true)),
* @ORM\AttributeOverride(name="emailCanonical", column=@ORM\Column(nullable=true, unique=false))
*
* })
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
...(code emitted)
Позже я узнаю, нужно ли больше - мне, вероятно, придется переопределить некоторые методы FOSUserBundle для создания пользователей. По крайней мере, для команды "php app/console fos: пользователь: создать тестового пользователя" требуется электронное письмо... Но он больше не должен быть уникальным, поэтому, если мне помешают позже, я могу просто добавить строку "нет" или что-то в этом роде...