cakePHP和同一个表之间的多种关系

时间:2011-11-05 21:48:20

标签: cakephp models relationship

我有两张牌桌 - usersstores 还有第三个表 - stores_users应该管理关系(HABTM)。

但是,商店中有一个user_id列,它引用商店的所有者,即创建商店记录的人(belongsTo)。 该用户可以向其他用户授予管理权限..

由于这种关系我应该期待问题吗?

1 个答案:

答案 0 :(得分:1)

这应该不是问题。您可以为您的关联提供别名

class Store extends AppModel {

    public $belongsTo = array(
        'Creator' => array(
            'className' => 'User',
            'foreignKey' => 'user_id',
        ),
    );

    public $hasAndBelongsToMany = array(
        'Manager' => array(
            'className' => 'User',
            'joinTable' => 'stores_users',
            'foreignKey' => 'store_id',
            'associationForeignKey' => 'user_id',
         ),
    );

}

现在find上的Store操作将返回

等数据
array(
    [Store] => array(...)
    [Creator] => array(...)
    [Manager] => array(
        0 => array(...)
        1 => array(...)
    )
)