Cakephp与同一模型的多重关系

时间:2010-07-06 19:54:46

标签: cakephp models

我正在开发一个房地产应用程序,其中一个房屋可以由一个或两个房地产经纪人列出。因此,我试图遵循Cake Cookbook第3.7.6.7节中给出的示例。这是我的房地产经纪人模型中发生的事情:

class Realtor extends AppModel {
    var $primaryKey = $num;
    var $name = 'Realtor';
    var $hasMany = array('Homes' => 
        array('className' => 'Home',
              'foreignKey' => 'realtor_num',
        ...),
                         'CoListedHomes' =>
        array('className' => 'Home',
              'foreignKey' => 'realtor2_num',
        ...) 
    );

这完全破坏了应用程序,并显示错误消息“找不到模型CoListedHomes的数据库表co_listed_homes。”

回到Cookbook 3.7.6.7,第二个例子,似乎很清楚他们不应该在他们的数据库中拥有或需要单独的“messages_received”和“messages_sent”表,那么我做错了什么呢?

ETA:很奇怪(对我而言)我认为我通过交换数组的顺序得到了关系:第一个数组,在foreignKey = realtor2_num,被称为'ListedHomes',第二个数组,在foreignKey = realtor_num被称为'家'。我想我的问题是,为什么命令很重要,为什么Cake在某些情况下开始讨论不完整的数据库表?

2 个答案:

答案 0 :(得分:0)

为了以防万一,我已经将其构建为类别设置。然后在Category和Home之间创建了一个连接表。

然后你可以在两个类别和家庭之间拥有一个hasAndBelongsToMany

答案 1 :(得分:0)

“未找到模型co_listed_homes的数据库表CoListedHomes”可能是指您没有为CoListedHomes定义指向homes表的模型。

然而,我会将此编码为n:m,也称为hasAndBelongsToMany,如DavidYell所述。