【问题标题】:CakePHP 2.x deleting HABTM data when dependent is trueCakePHP 2.x 在依赖为真时删除 HABTM 数据
【发布时间】:2023-03-06 20:13:01
【问题描述】:

我有一个关于 CakePHP 的问题,假设我有两个模型 DoctorDegreeDoctor is HABTM relation with Degree,反之亦然。 现在我设置了 dependency true,所以我的问题是,如果我删除任何一个以下的 id,只删除依赖项(即来自 DegreesDoctor 模型的数据)或相关的HABTM数据? (意味着删除医生,相关学位也被删除?)

【问题讨论】:

    标签: cakephp cakephp-2.0 has-and-belongs-to-many


    【解决方案1】:

    你看,如果你删除Doctor记录那么Doctor记录肯定会被删除。

    同时Mapping:与Doctor相关的课程也被删除。

    简而言之:doctors 表中的记录以及表 degreesdoctorsdoctor_id 的关联记录也被删除。

    如果您删除学位记录,也会发生同样的情况。

    【讨论】:

    • 所以学位记录不会被删除(删除医生时)?
    • @ashishTripathi ,不,请参阅逻辑。在度数表中有 3 个度数:BHMS,BAMS & MBBS,有 1000 名医生 .Dr.A 是 BHMS 所以他的映射在degreesdoctors 表中。也有很多医生都有 BHMS 学位映射,所以如果我删除 Dr.A,你想从degrees 表中删除学位BHMS ?????然后对BHMS主键进行映射:id,其他Doctors将指向映射表中的BHMS,但假设BHMS从degrees中删除,那么id将指向删除的degrees记录。
    • 非常感谢,这正是我要找的。​​span>
    • CakePHP 2.x 中的 hasAndBelongsToMany 关系没有“依赖”参数
    【解决方案2】:

    如果您将dependent 设置为true,它也会删除所有相关数据。

    cakePHP 文档的摘录;

    Dependent :当依赖键设置为true,并且调用模型的delete()方法,级联参数设置为true时,关联的模型记录也被删除。在这种情况下,我们将其设置为 true,以便删除用户也会删除她关联的个人资料。

    来源:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html

    【讨论】:

    • CakePHP 2.x 中的 hasAndBelongsToMany 关系没有“依赖”参数
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多