Symfony2: сущность расширяет MappedSuperClass расширяет пользователя FOSUserBundle

Я создал BaseBundle с SuperUser MappedSuperClass, который расширяет FOSUserBundle User

use FOS\UserBundle\Model\User as FOSUser;

/*
* @ORM\MappedSuperclass
*/
class SuperUser extends FOSUser
{
/**
* @var string
* @ORM\Column(name="locale", type="string", nullable=true)
*/
protected $locale;
}

В моем проекте я установил свой BaseBundle. Я создал сущность User, которая расширяет мой класс SuperUser.

/*
* User class
*/
class User extends SuperUser
{
/**
* @var string
*/
private $fullName;
}

Проблема в том, что когда я создаю таблицу, Doctrine видит только свойства FOSUser и User, но не мои свойства SuperUser. Я вижу только свойства fullName и FOSUser.

Мой класс SuperUser обойден ..

Я заметил, что класс User имеет нотацию YAML, SuperUser — аннотацию PHP, а класс FOSUser — нотацию XML. Я не знаю, если это создает проблемы.

0

Решение

Из документации:

Пакет может принимать только один формат определения метаданных. Например, невозможно смешать определения метаданных YAML с аннотированными определениями классов сущностей PHP.

Попробуйте добавить YML-отображение вашего MappedSuperClass

1

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

Я создал BaseBundle с SuperUser MappedSuperClass, который расширяет FOSUserBundle User

use FOS\UserBundle\Model\User as FOSUser;

/*
* @ORM\MappedSuperclass
*/
class SuperUser extends FOSUser
{
/**
* @var string
* @ORM\Column(name="locale", type="string", nullable=true)
*/
protected $locale;
}

В моем проекте я установил свой BaseBundle. Я создал сущность User, которая расширяет мой класс SuperUser.

/*
* User class
*/
class User extends SuperUser
{
/**
* @var string
*/
private $fullName;
}

Проблема в том, что когда я создаю таблицу, Doctrine видит только свойства FOSUser и User, но не мои свойства SuperUser. Я вижу только свойства fullName и FOSUser.

Мой класс SuperUser обойден ..

Я заметил, что класс User имеет нотацию YAML, SuperUser — аннотацию PHP, а класс FOSUser — нотацию XML. Я не знаю, если это создает проблемы.

0

Из документации:

Пакет может принимать только один формат определения метаданных. Например, невозможно смешать определения метаданных YAML с аннотированными определениями классов сущностей PHP.

Попробуйте добавить YML-отображение вашего MappedSuperClass

0

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
1
По вопросам рекламы [email protected]