Symfony2删除实体,级联异常 [英] Symfony2 delete entities, cascade exception

查看:89
本文介绍了Symfony2删除实体,级联异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为 Step2 的实体(具有多个selectedriskassesments实体,这是一个带有额外字段的RiskAssestment实体):

I have an entity called Step2 (has multiple selectedriskassesments entities which is a RiskAssestment entity with an extra field):

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

SelectedRiskAssesment 实体具有:

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

这是调查的一部分,我想删除Step2 实体及其 selectedriskassesments ,但我得到了:

This is part of a survey, and I want to delete Step2 entity and it`s selectedriskassesments but I get :

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`))

我尝试使用 orphanRemoval:true 取消与 RiskAssestment 实体的绑定...任何帮助都很棒

I have tried to use orphanRemoval: true to unbind from the RiskAssestment entity...any help would be awesome

推荐答案

我必须更改Step2实体:

I had to change the Step2 entity:

  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"]

必须在

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

这篇关于Symfony2删除实体,级联异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆