У меня есть UserBundle, который расширяет FOSUserBundle и работает нормально.Но теперь я хочу создать несколько пользовательских сущностей со свойствами разных сторон.Но проблема в том, что когда я создаю свою пользовательскую сущность, которая расширяет мою основную пользовательскую сущность следующим образом:
class User extends BaseUser
{
protected $id;
// The main user class who extends FOSUser entity
}
class UserB extends User
{
//
}
Когда я это делаю, у меня появляется ошибка: `
Уровень доступа к MyApp \ UserBundle \ Entity \ UserB :: $ id должен быть защищен (как в классе MyApp \ UserBundle \ Entity \ User).
И когда я создаю защищенный идентификатор в моем объекте UserBУ меня есть это:
Неустранимая ошибка PHP: Невозможно повторно объявить MyApp \ UserBundle \ Entity \ UserB :: $ id.
И, чтобы закончить, я не могу удалитьid в моей сущности User меньше возвращает ошибку Doctrine:
[Doctrine \ ORM \ Mapping \ MappingException]
Не указан идентификатор / первичный ключ для сущности 'MTS \ UserBundle \ Entity \ User'.У каждой организации должен быть идентификатор / первичный ключ.
Кто-то может мне помочь?
РЕДАКТИРОВАТЬ: Проблема решена.Мой код:
/**
* MTS\UserBundle\Entity\User
*
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"userfb" = "UserFB"})
*/
abstract class User extends BaseUser
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $type
*/
private $type;
}
/**
* @ORM\Table()
* @ORM\Entity()
*/
class UserB extends User
{
// My variables
}