0

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

我想在我的个人资料视图中为该用户显示每个项目。所以我在用户和项目之间建立了关联。用户有很多项目。我在用户控制器中创建了一个带有关联配置文件视图的配置文件操作。当我导航到其中一个用户的配置文件视图时,我可以看到它正在查询 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 回答