1

我正在使用 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 显示了两个查询,一个是从患者中选择字段,第二个是咨询和患者之间的连接查询。(只有我真正需要。)。由于它导致两个不同的查询,我无法向它添加条件?为什么 find 如此返回?

4

1 回答 1

0

在 hasMany 关系的情况下,Cake 不会进行左连接,仅在属于 belongsTo 的情况下。因此,如果您以相反的方式 ( $this->ConsultingDet->find('all')) 执行此操作,则 cake 应该运行一个查询。

如果您想为这两个表应用不同的条件,您只需手动运行两个查询。

如果您想尝试一下,可以通过在 cake 的查询中自定义 'joins' 参数来解决这个问题。

于 2012-05-04T09:55:49.447 回答