おはようございます、
$hasOne は正常に動作しますが、$hasMany に問題があります。
Assignment と AssignmentGroup の 2 つのモデルがあります。Assignment は 1 つの 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);
$hasMany の代わりに $hasOne を使用すると、期待どおりの結果が得られます。
$result = array(
'AssignmentGroup => array(
[several elements]
),
'Assignment' => array(
[more elements]
),
);
しかし、必要に応じて $hasMany を使用すると、状況がバラバラになります。クエリに JOIN がありません。
$result = array(
'AssignmentGroup => array(
[several elements]
),
'Assignment' => array(),
);
誰かが何が起こっているのかを説明したり、解決策を提案したりできますか? 助けてくれてありがとう。