我正在开发一个房地产应用程序,其中一个房屋可以由一个或两个房地产经纪人列出。因此,我试图遵循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在某些情况下开始讨论不完整的数据库表?
答案 0 :(得分:0)
为了以防万一,我已经将其构建为类别设置。然后在Category和Home之间创建了一个连接表。
然后你可以在两个类别和家庭之间拥有一个hasAndBelongsToMany
答案 1 :(得分:0)
“未找到模型co_listed_homes
的数据库表CoListedHomes
”可能是指您没有为CoListedHomes
定义指向homes
表的模型。
然而,我会将此编码为n:m,也称为hasAndBelongsToMany,如DavidYell所述。