我需要什么:
类似facebook的友谊系统。
User (A)
向User (B)
User (B)
确认了请求User (A)
和User (B)
现在是朋友我的问题:
我很困惑如何解决这个问题。我在互联网上看了很多,但它并没有真正帮助我...
我的问题:
我已做过的事情:
表:users
姓名:id
,username
,password
,...
users_users表:id
,user_id
,friend_id
,approved
型号:
'User' => array(
'className' => 'User',
'joinTable' => 'users_users',
'foreignKey' => 'user_id',
'associationForeignKey' => 'friend_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
'deleteQuery' => '',
'insertQuery' => ''
);
答案 0 :(得分:0)
“@tereško谢谢!但我收到错误:错误:发生内部错误”
首先回答您对“内部错误”的评论:
尝试在debug
中将config.php
设置为2您将意识到您将开始获得更多可理解的错误。
关于你的第一个问题: 1.你的关系基本上看起来像hasMAny,因为每个用户都有朋友。 HABTM也会在这里工作,但它要复杂得多。这个决定(使用什么关系)还取决于系统的其他部分 - 即您希望在其他部分使用此数据的内容和方式。 2.阅读here 3.阅读there again
HABTM和hasMany through the jon model上的更多内容(如果您需要在使用与HABTM相同的想法时在连接表中存储任何其他数据)。
当HABTM变得复杂时该怎么办?
默认情况下,保存HasAndBelongsToMany关系时,Cake将删除所有行 保存新的之前在连接表上。例如,如果您有一个有10个孩子关联的俱乐部。然后,您将与2名儿童一起更新俱乐部。俱乐部只有2个孩子,而不是12个孩子。 另请注意,如果要为连接添加更多字段(创建时或元信息),可以使用HABTM连接表,但重要的是要了解您有一个简单的选项。 两个模型之间的HasAndBelongsToMany实际上是通过hasMany和belongsTo关联的三个模型的简写 关联。
您当前的数据库结构非常糟糕。我不明白为什么你需要一个名为table
的表 - 或者我错了。如果你打算使用HABTM,你根本不需要创建连接模型 - cake会自动创建并填充它你。
HATBM的更多信息: