Метод persist не работает в классе наследования, хотя я установил каскад свойств в аннотации (cascade = "all").
/**
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="tipo", type="string")
* @ORM\DiscriminatorMap({"menu" = "Menu", "enquete" = "Enquete"})
*/
abstract class Widget{
/**
* @ORM\Id
*/
protected $id;
}
/**
* @ORM\Entity
*/
class Enquete extends Widget{
/**
* @var ArrayCollection
* @ORM\OneToMany(targetEntity="Admin\Model\Alternativa", mappedBy="enquete", cascade="all")
*/
protected $alternativas;
}
/**
* @ORM\Entity
*/
class Alternativa{
/**
* @ORM\ManyToOne(targetEntity="Admin\Model\Enquete", inversedBy="alternativas")
* @ORM\joinColumn(name="Enquete_id", referencedColumnName="id")
*/
protected $enquete;
}
Я использую persist в каскаде, но не работает:
$enquete->addAlternativa(New Alternativa());
$entityManager->persist($enquete);
$entityManager->flush();
Результатом является следующая ошибка:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'Enquete_id' cannot be null