【发布时间】:2013-06-16 21:13:38
【问题描述】:
我有三个模型:项目、学生和投票。 下面的代码就是它们之间的关系。在项目模型中:
public $hasMany = array('Student' => array(
'className' =>'Student',
'foreignKey'=>'project_id',
'order' => 'Student.studentName DESC',
),
'Vote' => array(
'className' =>'Vote',
'foreignKey'=>'project_id',
));
在学生模型中:
public $belongsTo = array(
'Project'=>array(
'className'=>'Project',
'foreignKey'=>'project_id'
));
在投票模型中:
public $belongsTo = array(
'Project'=>array(
'className' => 'Project',
'foreignKey' => 'id'
));
但是,当我调用这个函数时(在项目模型中):
public function getApprovedProjects(){
$approvedProjects = $this->find('all', array('conditions'=>array(
'Project.approved' => 1)));
return $approvedProjects;
}
这是我得到的数据:
Array(
[0] => Array
(
[Project] => Array
(
[id] => 0
[projectName] => MyProject
[semester] => GAME
[description] => Test project
[imageLink] =>
[approved] => 1
)
[Student] => Array
(
)
[Vote] => Array
(
)
)
[1] => Array
(
[Project] => Array
(
[id] => 1
[projectName] => CRIA STUFF
[semester] => CRIA
[description] => Cria project
[imageLink] =>
[approved] => 1
)
[Student] => Array
(
)
[Vote] => Array
(
)
)
)
它没有找到与该项目相关的任何学生或投票,即使它们存在并且我认为它应该存在。知道发生了什么吗?
【问题讨论】:
-
有人有什么建议可以帮助我吗?我有一个工作的最后期限,我想避免等到可以与其他程序员见面。
-
对于没有有任何学生或投票的项目,您的结果看起来格式正确。检查您的查询日志,您很可能会发现结果与您拥有的数据准确无误。
-
我不知道为什么没有学生数据,但投票模型将外键指定为:
'foreignKey' => 'id'而不是'foreignKey' => 'project_id'。另请注意,在您的模型中,您应该使用外键表名称,例如:project_id而不是 camelCase -
请显示这些表格的一些数据
标签: cakephp model find model-associations