2011-12-06 29 views
0

私は以下のcakephp結合関係を設定しました。彼らは見つけることができますが、結果にネストされたコメントのユーザーレコードを取得する方法もありますか?cakephp入れ子にされた結合を行う方法

 $this->Posts->bindModel(array(
     'hasOne' => array(
      'User' => array(
       'foreignKey' => false, 
       'type' => 'INNER', 
       'conditions' => array('Posts.user_id = Users.id') 
      ) 
     ), 
     'hasMany' => array(
      'Comment' => array(
       'foreignKey' => 'post_id', 
       'conditions' => array('Comment.active' => 1) 
      ) 
     ) 
    )); 

これは以下のような結果を得るために素晴らしい作品:

[1] => Array 
    (
     [Posts] => Array 
      (
       [title] => test post 
       [body] => test body 
       [published] => 
       [id] => 15 
      ) 

     [User] => Array 
      (
       [id] => 7 
       [username] => admin 
       [password] => d0557b9de8bb6f7fb3248a017c7b67a6 
       [email] => [email protected] 
       [group_id] => 1 
       [created] => 2011-11-21 15:19:09 
      ) 

     [Comment] => Array 
      (
       [0] => Array 
        (
         [id] => 10 
         [user_id] => 7 
         [post_id] => 15 
         [text] => testdfasdfdsfasdfasdfasdfasd 
         [active] => 1 
         [created] => 2011-12-02 20:50:57 
         [published] => 2011-12-05 13:58:25 
        ) 

       [1] => Array 
        (
         [id] => 11 
         [user_id] => 7 
         [post_id] => 15 
         [text] => this is a test comment 
         [active] => 1 
         [created] => 2011-12-02 21:31:56 
         [published] => 2011-12-03 11:34:32 
        ) 

      ) 

    ) 

私の質問もコメントに関連するユーザーを取得する方法ですか?コメントとユーザーの間には関係がありません。

答えて

0

bindModelにcontainsを使用できますか?前にそれを試したことはありません...しかし、ショットの価値があります。

$this->Posts->bindModel(array(
     'hasOne' => array(
      'User' => array(
       'foreignKey' => false, 
       'type' => 'INNER', 
       'conditions' => array('Posts.user_id = Users.id') 
      ) 
     ), 
     'hasMany' => array(
      'Comment' => array(
       'foreignKey' => 'post_id', 
       'conditions' => array('Comment.active' => 1), 
       'contain' => array('User'), 
      ) 
     ) 
    )); 

実際に私はあなたの質問を読んだので、あなたが望むものは本当にわかりません。その人がコメントしているユーザーのuser_idを使用しますか?あなたはもう少しあなたが望むものについて詳しく説明できますか?

関連する問題