Cakephp很多很多都是递归的

时间:2012-09-03 20:40:43

标签: database cakephp

Hy我正在尝试为我的网站创建一个跟随功能,以便用户可以互相关注,我正在使用Cakephp我应该使用什么样的关系,我应该为表命名。

注意:我创建了一个用户表+跟随包含user_id和follower_id的表!

2 个答案:

答案 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'

要保存您的数据(请阅读herehere),您需要创建一个数组:

$this->User->find('all', array('conditions' => array('id' => 1)));

答案 1 :(得分:0)

您正在寻找的内容/示例的说明正好在本书中:

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#multiple-relations-to-the-same-model

每本书的类似例子:

“也可以创建自我关联,如下所示:”

<?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'
        )
    );
}