简体   繁体   English

Symfony2删除实体,级联异常

[英]Symfony2 delete entities, cascade exception

I have an entity called Step2 (has multiple selectedriskassesments entities which is a RiskAssestment entity with an extra field): 我有一个称为Step2的实体(具有多个selectedriskassesments实体,它是带有额外字段的RiskAssestment实体):

......................
    manyToMany:
       selectedriskassesments:
         targetEntity: **SelectedRiskAssesment**
         joinTable:
           name: step2_selected_risk_assesments
           joinColumns:
             step2_id:
               referencedColumnName: id
           inverseJoinColumns:
             selected_risk_id:
               referencedColumnName: id 
         cascade: ["persist","remove"]
..............................

and SelectedRiskAssesment entity has: 并且SelectedRiskAssesment实体具有:

 manyToOne:
        risk_assesment:
            targetEntity: RiskAssestment
            inversedBy: selectedriskassesment
            joinColumn:
                name: risk_assesment
                referencedColumnName: id
            orphanRemoval: true

This is part of a survey, and I want to delete Step2 entity and it`s selectedriskassesments but I get : 这是调查的一部分,我想删除Step2实体及其选择的风险评估,但得到:

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`phsafety`.`step2_selected_risk_assesments`, CONSTRAINT `FK_FAFC9298EA71C84F` FOREIGN KEY (`selected_risk_id`) REFERENCES `selectedriskassesment` (`id`))

I have tried to use orphanRemoval: true to unbind from the RiskAssestment entity...any help would be awesome 我尝试使用orphanRemoval:true可以与RiskAssestment实体解除绑定...任何帮助都会很棒

I had to change the Step2 entity: 我必须更改Step2实体:

  manyToMany:
       selectedriskassesments:
         targetEntity: **SelectedRiskAssesment**
         joinTable:
           name: step2_selected_risk_assesments
           joinColumns:
             step2_id:
               referencedColumnName: id
           inverseJoinColumns:
             selected_risk_id:
               referencedColumnName: id 
               onDelete: CASCADE
         cascade: ["persist","remove"]

Had to add onDelete: CASCADE , inspiration by 必须添加onDelete:CASCADE ,灵感来自

  • Elnur Abdurrakhimov 阿卜杜勒·克拉希莫夫(Elnur)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM