CakePHP - 链接模型

时间:2012-10-09 10:16:49

标签: cakephp

我有三个模特

  1. 用户
  2. 状态
  3. 评论
  4. 我已完成用户和状态关联,现在我想加入评论,但我有点困惑,我认为这将是这样......

    场景1:用户拥有多种状态和状态belongsTo user [DONE] 场景2:状态有很多评论和评论属于[状态[也将完成]

    正在吃我的想法的是,评论也属于用户[对或错? ]

    如果正确,那就是我要使用belongsTo的方式

    var $belongsTo = array('status','user');
    

    然后查找('全部')?会是这样吗

    $this->User->Status->Comment->find('all'); 
    

1 个答案:

答案 0 :(得分:1)

好的,基于看起来像Facebook的应用程序,我认为你应该有这样的关联:

用户

public $hasMany = array(
    'Status' => array(
        'className' => 'Status',
        'foreignKey' => 'user_id',
        'dependent' => true
    ),
    'Comment' => array(
        'className' => 'Comment',
        'foreignKey' => 'user_id',
        'dependent' => true
    ),
);

状态

public $hasMany = array(
    'Comment' => array(
        'className' => 'Comment',
        'foreignKey' => 'status_id',
        'dependent' => true
    ),
);

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

<强>注释

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

例如,要查找状态评论,您可以使用 Containable Behavior

希望这有帮助。