【发布时间】:2012-08-24 18:06:11
【问题描述】:
早上好,
我在使用 $hasMany 时遇到了问题,尽管 $hasOne 可以正常工作。
我有两个模型,Assignment 和 AssignmentGroup。 Assignment 可以有一个AssignmentGroup,但AssignmentGroup 可以有多个Assignment。以下是关系:
class Assignment extends AppModel {
public $belongsTo = array('AssignmentGroup');
}
class AssignmentGroup extends AppModel {
public $hasMany = array(
'Assignment' => array('foreignKey'=>'assignment_group_id),
);
}
这是我正在运行的代码:
$this->AssignmentGroup->Behaviors->load('Containable');
$params = array(
'conditions' => array('AssignmentGroup.class_id' => $class_id),
'contain' => array('Assignment'),
);
$result = $this->AssignmentGroup->find('all', $params);
当我使用 $hasOne 而不是 $hasMany 时,我得到了预期的结果。
$result = array(
'AssignmentGroup => array(
[several elements]
),
'Assignment' => array(
[more elements]
),
);
但是,当我根据需要使用 $hasMany 时,事情就崩溃了。该查询没有 JOIN。
$result = array(
'AssignmentGroup => array(
[several elements]
),
'Assignment' => array(),
);
谁能解释发生了什么和/或提出解决方案?感谢您的帮助。
【问题讨论】:
-
我对CakePHP不是很熟悉,但是外键应该在Assignment模型中吗?
-
你让它工作了吗?我有同样的问题:stackoverflow.com/questions/37946705/…
标签: php cakephp cakephp-2.1 cakephp-model