我正在使用cake1.3,我有两个模型: -
class Patient extends AppModel {
var $hasMany = array(
'ConsultingDet' => array(
'className' => 'ConsultingDet',
'foreignKey' => 'patient_id',
)
);
}
class ConsultingDet extends AppModel {
var $belongsTo = array(
'Patient' => array(
'className' => 'Patient',
'foreignKey' => 'patient_id',
) ''
);
}
当我使用
时$patients = $this->Patient->find('all')
sqldump显示两个查询,一个是来自患者的选择字段,第二个是咨询和患者之间的连接查询。 (这只是我真正需要的。) 因为它导致两个不同的查询我不能添加条件? 为什么发现这样才回来?
答案 0 :(得分:0)
在hasMany关系的情况下,Cake不会执行左连接,仅在belongsTo的情况下。因此,如果你反过来($this->ConsultingDet->find('all')
),那么蛋糕应该运行一个查询。
如果要为这两个表应用不同的条件,则只需手动运行两个查询。
如果你想尝试一下,可以通过在cake的查询中自定义'join'参数来解决这个问题。