2017-07-04 62 views
3

我使用symfony 2.7作爲CMF。[Symfony2]:實體的級聯元素刪除如何獲得生命週期屬性

我有2個實體用戶和任務。任務有一個生命週期屬性(createdBy,updatedBy)。

當我嘗試刪除用戶,我有此錯誤:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (XXXX . mission , CONSTRAINT FK_19653DBD16FE72E1 FOREIGN KEY (updated_by) REFERENCES fos_user_user (id))

這是在實體使命我的生命週期元素:

/** 
* @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User") 
* @ORM\JoinColumn(name="created_by", referencedColumnName="id" , onDelete="CASCADE") 
*/ 
private $createdBy; 

/** 
* @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User") 
* @ORM\JoinColumn(name="updated_by", referencedColumnName="id" , onDelete="CASCADE") 
*/ 
private $updatedBy; 

THX的幫助。

+0

你想在用戶刪除或刪除時將其刪除嗎? –

+0

我想刪除任務 –

回答

1

把它在用戶側的學說的關係,是這樣的:

* @ORM\OneToMany(targetEntity="your\entity\mission", cascade={"delete"}) 

編輯:

如果您不能訪問用戶實體(不明白爲什麼你不能......),你可以做一些事情有點難看獲得更多的使命連接到用戶,刪除然後將其刪除該用戶

+0

問題,我有這麼多的實體與生命週期,我不能有這個註釋在實體用戶 –

+0

剛更新我的回答 –

0

在您的用戶實體: @ORM\OneToMany(targetEntity="xx",mappedBy="mission_id",cascade={"persist"})

在你的任務實體中:

@ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User") 
@ORM\JoinColumn(name="created_by", referencedColumnName="id" , 
onDelete="CASCADE") 
+0

我沒有在用戶實體內註釋 –