如何使用cakePHP将一个表连接两次到另一个表

时间:2009-08-16 16:56:30

标签: cakephp join

我正在尝试建立一个社交网络类型的网站,用户可以在这里与朋友互相发送消息。

我有一个users表和一个friends表,它基本上有一个user_id和user_friends_id。 使用cakePHP,如何将user_id和user_friend_id链接回users表? 我使用bake来创建我的所有模型和控制器,但是当我查看用户页面时,我收到了一个错误,因为cakePHP不知道如何将user_friend_id链接回users表。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

表名(字段):

 users (user_id, user fields....)
 friends_users (user_id, friend_id)

关联:

 User hasAndBelongsToMany Friend
 Friend hasAndBelongsToMany User
用户模型中的

var $hasAndBelongsToMany = array(
    'Friend' => array(
        'className' => 'User',
        'joinTable' => 'friends_users',
        'foreignKey' => 'user_id',
        'associationForeignKey' => 'friend_id',
    );
在朋友模型中

var $useTable = 'users';
var $hasAndBelongsToMany = array(
    'User' => array(
        'className' => 'User',
        'joinTable' => 'friends_users',
        'foreignKey' => 'friend_id',
        'associationForeignKey' => 'user_id',
    );