【发布时间】:2018-05-21 09:23:07
【问题描述】:
我有两个实体:
/**
* Course
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\CourseRepository")
*/
class Course
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var \Doctrine\Common\Collections\ArrayCollection()
*
* @ORM\OneToMany(targetEntity="AppBundle\Entity\TimeTableEntry", mappedBy="course", cascade={"remove"}, orphanRemoval=true)
*
*/
private $timeTableEntries;
/**
* @var boolean
*
* @ORM\Column(name="enabled", type="boolean", nullable=true)
*/
private $enabled;
和
/**
* TimeTableEntry
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="AppBundle\Entity\Repository\TimeTableEntryRepository")
*/
class TimeTableEntry
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var \Doctrine\Common\Collections\ArrayCollection()
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\Course", inversedBy="timeTableEntries", cascade={"ALL"})
* @ORM\JoinColumn(name="course_id", referencedColumnName="id", nullable=true, onDelete="CASCADE")
*/
private $course;
如您所见,我尝试使用 cascade={"ALL"}、onDelete="CASCADE" 和 orphanRemoval=true。
当我想删除课程实体时,我收到错误消息:
SQLSTATE[23000]:违反完整性约束:1451 无法删除或 更新父行:外键约束失败 (
edutalk.teaching_event, 约束FK_F2B1088B57042871外国 关键(time_table_entry_id)参考time_table_entry(id))
我可以尝试什么来解决这个问题?
【问题讨论】:
-
请分享您的实体,而不仅仅是一个 sn-p。
-
好的,我做到了;)
标签: symfony doctrine-orm entity-relationship