CakePHP:从视图中查询查询数据

时间:2010-09-08 11:59:05

标签: php cakephp cakephp-model

我设置了hasMany关系。用户拥有多个项目。在配置文件视图中的用户控制器中,我可以看到在SQL转储中为该用户返回的项目。

我想在我的个人资料视图中显示该用户的每个项目。所以我在用户和项目之间建立了关联。用户有很多项目。我已在用户控制器中使用关联的配置文件视图创建了配置文件操作。当我导航到其中一个用户的配置文件视图时,我可以看到它正在查询SQL转储中的项目。

这是具有正确用户标识的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());
}

1 个答案:

答案 0 :(得分:1)

在你看来

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

要查看更大的图片,只需使用pr(),您应该能够看到如何从那里访问其余数据。

pr($user);