J'essaie d'implémenter la stratégie de mappage this. J'ai défini la classe abstraite avec id et d'autres champs. mais je continue d'obtenir l'erreur suivante:Aucun identificateur/clé primaire spécifié pour la classe abstraite
No identifier/primary key specified for Entity "AppBundle\Entity\AbstractItem". Every Entity must have an identifier/primary key. (500 Internal Server Error)
Ceci est ma classe. Comme vous pouvez le voir, l'identificateur unique $id
a été spécifié
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;
}
}
Avez-vous essayé de définir la visibilité de '$ id' sur' protected'? –
Doctrine utilise la notion de super classes mappées pour traiter les classes d'entités abstraites: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html#inheritance-mapping – Cerad
@JakubMatczak ça n'a pas aidé. J'ai toujours la même erreur – blahblah