Hy我正在尝试为我的网站创建一个跟随功能,以便用户可以互相关注,我正在使用Cakephp我应该使用什么样的关系,我应该为表命名。
注意:我创建了一个用户表+跟随包含user_id和follower_id的表!
答案 0 :(得分:2)
如果您不需要保存有关该关系的任何信息,那么hasAndBelongsToMany是在这种情况下使用的自然关系。 试试这个:
// User Model
var $hasAndBelonsToMany = array(
'Follower' => array(
'className' => 'User',
'foreignKey' => 'user_id',
'associationForeignKey' => 'follower_id'
'joinTable' => 'followers_users'
)
)
然后您必须正常创建users表,并使用列'followers_users'
,'id'
,'user_id'
(以及'follower_id'
和{ {1}}如果你需要它们。)
编辑: 要检索您的数据(请阅读here),您可以照常执行此操作:
'created'
然后你会得到一个像:
这样的数组'updated'
要保存您的数据(请阅读here和here),您需要创建一个数组:
$this->User->find('all', array('conditions' => array('id' => 1)));
答案 1 :(得分:0)
您正在寻找的内容/示例的说明正好在本书中:
每本书的类似例子:
“也可以创建自我关联,如下所示:”
<?php
class Post extends AppModel {
public $name = 'Post';
public $belongsTo = array(
'Parent' => array(
'className' => 'Post',
'foreignKey' => 'parent_id'
)
);
public $hasMany = array(
'Children' => array(
'className' => 'Post',
'foreignKey' => 'parent_id'
)
);
}