使用带有Doctrine 2的onDelete

时间:2011-11-29 22:12:24

标签: mapping doctrine-orm yaml relation

我无法让onDelete在Doctrine2中工作(使用YAML Mapping)。

我在我的Product课程中尝试了这种关系:

oneToOne:
    category:
      targetEntity: Category
      onDelete: CASCADE

但这不起作用..

编辑:

我已在数据库中手动设置ON DELETE: CASCADE

使用doctrine:mapping:import

导入YAML映射

清空数据库

使用doctrine:schema:update从架构更新它并且在外键中没有ON DELETE ..所以看起来甚至Doctrine也不知道如何做它大声笑..

2 个答案:

答案 0 :(得分:20)

好的,明白了!我必须在onDelete内使用joinColumn

oneToOne:
    category:
        targetEntity: Category
        joinColumn:
            onDelete: CASCADE

答案 1 :(得分:5)

这是在onDelete中使用joinTable的方式:

manyToMany:
    parameters:
        targetEntity: Fox\LandingBundle\Entity\Parameter
        cascade: ["persist","remove"]
        joinTable:
            name: subscriberBox_parameter
            joinColumns:
                subscriberBox_id:
                    referencedColumnName: id
            inverseJoinColumns:
                parameter_id:
                    referencedColumnName: id
                    onDelete: CASCADE