我和教条的文档中有一个关系,所以我会以它为例:
Product:
type: entity
oneToOne:
shipping:
targetEntity: Shipping
joinColumn:
name: shipping_id
referencedColumnName: id
我正在尝试删除Shipping
实体,但我收到外键约束异常,因为Product
的行包含对它的引用。处理这个问题的正确方法是什么?在yaml中有什么东西我可以添加来照顾这个吗?或者我需要做以下的事情:
$product->setShipping(null);
$entityManager->persist($product);
$entityManager->remove($shipping);
$entityManager->flush();
答案 0 :(得分:0)
如果您希望删除onDelete
,则应将Shipping
选项设置为 CASCADE ,如果需要,还应设置为 SET NULL 仅删除Product
。
Product:
type: entity
oneToOne:
shipping:
targetEntity: Shipping
joinColumn:
name: shipping_id
referencedColumnName: id
onDelete: "SET NULL"
您可以在Doctrine docs上了解详情。