在教义中摧毁一对一的关系

时间:2014-09-12 16:11:40

标签: symfony doctrine-orm

我和教条的文档中有一个关系,所以我会以它为例:

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();

1 个答案:

答案 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上了解详情。