【问题标题】:join more than two tables cakephp加入两个以上的表 cakephp
【发布时间】:2012-08-26 02:51:57
【问题描述】:

我正在编写一个显示住房单元的应用程序(它们由提供出租的用户列出)。我想弄清楚如何在 Cakephp 中定义我的单元模型。我有三个表:units、complexs 和 users。

我知道单元 $belongsTo 'User',但它也属于 'Complex',因为每个复合体都可以有多个单元。我可以写这个吗?

<?php
  class Unit extends AppModel {
        var $name='Unit';
        var $belongsTo=array('User', 'Complex');

} ?>

我还应该补充一点,我不确定如何为 User 和 Complex 定义我的类,因为一个 User 可以有很多 Complexes,而一个 Complex 可以有很多 User。如果一个 hasMany 也可以属于它所拥有的东西Many 吗?这是HABTM吗?我很困惑(新手)。

【问题讨论】:

    标签: mysql cakephp cakephp-model


    【解决方案1】:

    听起来像一个用户有许多复合体,一个复合体属于许多用户。 这是一个HABTM。

    一个用户可以有多个单位,但一个单位只能有一个用户。这是一个 hasMany 和一个 belongsTo。

    现在对于单元和复合体之间的关系,如果一个复合体可以有很多单元,那么就是一个 hasMany。我猜是这样的。我还猜想一个单元既属于一个复合体,也属于一个用户。这可以。单位可以同时属于用户和复合体,而不会出现问题或不需要 HABTM。

    所以我在上面为你定义了你的关系。似乎您已经知道如何定义 hasMany 和 belongsTo,所以只需确保按照本页所述设置 HABTM:(请记住,您的数据库中需要一个额外的表,并且不要忘记添加任何 db其他关系所需的列)。

    http://book.cakephp.org/view/1044/hasAndBelongsToMany-HABTM

    祝你好运。

    【讨论】:

    • 感谢您的回答。我只是想说,虽然一个用户可以有多个单元,但每个单元只能有一个用户。所以我会说这不是一个习惯,对吗?
    • 没错。我已经更新了我的答案以反映这一点。如果您觉得我的回答有帮助,请考虑将其标记为答案(票数左侧的复选框)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多