Не указан идентификатор / первичный ключ для абстрактного класса

Я пытаюсь реализовать этот картографическая стратегия. Я определил абстрактный класс с id и другими полями. но я продолжаю получать следующую ошибку:

Не указан идентификатор / первичный ключ для сущности «AppBundle \ Entity \ AbstractItem». Каждый объект должен иметь идентификатор / первичный ключ. (500 — внутренняя ошибка сервера)

Это мой класс. Как видите, уникальный идентификатор $id был указан

 use Doctrine\ORM\Mapping as ORM;

/**
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="type", type="string")
* @ORM\DiscriminatorMap({"post" = "Post", "group" = "Group"})
*/
class AbstractItem
{
/**
* @var int
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

/**
* @var \DateTime
*/
protected $published;
protected $object;
protected $target;

/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
}

0

Решение

Этот абстрактный класс не должен быть реальной сущностью в базе данных.

Попробуйте поставить @ORM \ MappedSuperClass вместо @ORM \ Entity

0

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

попробуйте это пожалуйста:

/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;

Вместо этого:

  /**
* @var int
*
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;

Вам нужно указать идентификатор столбца внутри комментария

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector