使用带有Doctrine 2的onDelete

tam*_*mir 6 mapping yaml relation doctrine-orm

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

我在Product班上尝试过这种关系:

oneToOne:
    category:
      targetEntity: Category
      onDelete: CASCADE
Run Code Online (Sandbox Code Playgroud)

但这不起作用..

编辑:

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

导入YAML映射doctrine:mapping:import,

清空数据库

从架构更新它,doctrine:schema:updateON DELETE在外键中没有..所以看起来甚至Doctrine不知道怎么做它大声笑..

tam*_*mir 20

好的,我知道了!我不得不在onDelete里面使用joinColumn:

oneToOne:
    category:
        targetEntity: Category
        joinColumn:
            onDelete: CASCADE
Run Code Online (Sandbox Code Playgroud)


Ser*_*nin 6

这是使用的方式onDeletejoinTable:

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
Run Code Online (Sandbox Code Playgroud)