Sir*_*ius 3 mysql sql orm symfony doctrine-orm
我有一个表Products,实体tva链接到表Tva,实体图像链接到表Media。我在奏鸣曲管理中呈现网站的所有产品。我希望能够从管理中删除产品。
我希望能够删除产品而不删除其外键链接。
但我有这个错误:
SQLSTATE[23000]:完整性约束冲突:1451 无法删除或更新父行:外键约束失败(
fly.post、CONSTRAINTFK_5A8A6C8D4D79775FFOREIGN KEY (tva_id) REFERENCEStva(id))
这是我的实体电视和图像
/**
* @ORM\ManyToOne(targetEntity="FLY\BookingsBundle\Entity\Tva", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $tva;
/**
* @ORM\ManyToOne(targetEntity="FLY\BookingsBundle\Entity\Media", cascade={"persist","remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $image;
Run Code Online (Sandbox Code Playgroud)
我决定将连接列从这个更改为这个, * @ORM\JoinColumn(nullable=true) 它* @ORM\JoinColumn(onDelete="CASCADE") 可以工作,我可以删除该产品,但它也删除外键,我不希望这样,因为我有其他使用相同图像和 tva 的产品。
(onDelete="CASCADE")当父记录被删除时,子记录也会被删除。如果我们不想删除子记录那么我们需要配置onDelete="SET NULL"。这会将外键值设置为null子记录。
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |