0

hasMany関係を設定しています。ユーザーhasManyプロジェクト。プロファイルビューのユーザーコントローラーで、SQLダンプでそのユーザーに返されるプロジェクトを確認できます。

そのユーザーのプロファイルビューに各プロジェクトを表示したいと思います。そこで、ユーザーとプロジェクトの間に関連付けを設定しました。ユーザーhasManyプロジェクト。関連付けられたプロファイルビューを使用して、ユーザーコントローラーでプロファイルアクションを作成しました。のユーザーの1人のプロファイルビューに移動すると、SQLダンプ内のプロジェクトをクエリしていることがわかります。

これは、正しいユーザーIDを持つSQLダンプです。

SELECT `Project`.`id`, `Project`.`title`, `Project`.`created`, `Project`.`website`, `Project`.`language_id`, `Project`.`user_id`, `Project`.`description`, `Project`.`tags`, `Project`.`creator_id` FROM `projects` AS `Project` WHERE `Project`.`user_id` = (5)

このクエリのデータをどのように使用できますか?

プロジェクトモデル

var $belongsTo = array(
    'User' => array(
        'className'    => 'User',
        'foreignKey'    => 'user_id',
        'counterCache' => 'num_of_projects'
        ),
    'Language'
     );  
?>

ユーザーモデル

  var $hasMany = array('Project' => 
                                array('className'     => 'Project', 
                                      'conditions'    => '',
                                      'order'         => '', 
                                      'limit'         => '',                    
                                      'foreignKey'    => 'user_id',              
                                      'dependent'     => true,                   
                                      'exclusive'     => false,                  
                                      'finderQuery'   => '',                      
                                      'fields'        => '',                      
                                      'offset'        => '',                      
                                      'counterQuery'  => ''
                                      )           
                    );

User_Controllerのプロファイルアクション

function profile($id = null) {
    $this->User->id = $id;
    $this->set('user', $this->User->read());
}
4

1 に答える 1

1

あなたの見解では

foreach($user['Project'] as $project)
{
   echo $project['title'].'<br />';
}

全体像を見るには、pr() を使用するだけです。そこから残りのデータにアクセスする方法を確認できるはずです。

pr($user);
于 2010-09-08T12:05:32.723 に答える