【问题标题】:CakePHP HABTM relationships and deletingCakePHP HABTM 关系和删除
【发布时间】:2013-08-07 22:10:46
【问题描述】:

我正在编写一个蛋糕应用程序,我正在尝试模拟一个组对服务具有权限的情况,并且该组中的用户可以拥有这些权限的子集。如果组失去对服务的权限,该组中的用户也应该失去权限。

我的桌子:

groups (id), services (id), groups_services (id, service_id, group_id), users (id, group_id), users_services (id, groups_services_id, user_id)

目前,组与服务具有 HABTM 关系。问题是,如果我从服务中删除一个组,那么它也应该从该组中的所有用户中删除。我通常知道使用 CakePHP 你可以通过在你的模型关系上定义一个依赖 => true 来做到这一点,但在这种情况下,users_services 依赖于代表 HABTM 的连接表 groups_services,所以我认为这不会工作。我是否必须断开 HABTM 关系才能使其正常工作,并改用 groups hasMany groups_services 和 services hasMany group_services?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    来自the cookbook

    HABTM 数据被视为一个完整的集合,每次都有一个新数据 关联添加了数据库中完整的关联行集 被删除并再次创建,所以你总是需要通过整个 保存的数据集。有关使用 HABTM 的替代方法,请参阅 hasMany 通过(连接模型)

    因此,HABTM 主要适用于非常“愚蠢”的关系。

    在大多数需要任何类型的细粒度控制的情况下,HABTM 并不适合。

    所以,简短的回答,是的。如您所想,分解您的 HABTM 并使用 has many through

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多