我是 Cakephp 2.0 的新手,但我想使用 Inner Join 查看两个表。我有以下表格:
具有记录的 hpsas:id、ciname、位置、状态
带有记录的 ldaps:id、ciname、status
我将在 MySQL 中执行的查询是:
SELECT * FROM hpsas INNER JOIN ldaps ON hpsas.ciname = ldaps.ciname;
无论是模型、控制器还是视图,我都必须使用哪种语法。
我是 Cakephp 2.0 的新手,但我想使用 Inner Join 查看两个表。我有以下表格:
具有记录的 hpsas:id、ciname、位置、状态
带有记录的 ldaps:id、ciname、status
我将在 MySQL 中执行的查询是:
SELECT * FROM hpsas INNER JOIN ldaps ON hpsas.ciname = ldaps.ciname;
无论是模型、控制器还是视图,我都必须使用哪种语法。
$options['joins'] = array(
array('table' => 'ldaps',
'type' => 'inner',
'conditions' => array(
'hpsas.ciname = ldaps.ciname',
)
)
);
$this->Hpsa->find('all', $options);
有关更多详细信息,请参阅有关关联的蛋糕书部分:http: //book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables
遵循 activeRecord 模型,我认为您应该在模型中定义一个关系,以避免每次需要来自该模型的记录时都运行复杂的查询。您将需要遵守蛋糕的惯例,这意味着您将拥有 3 个模型(很可能)
class cinema extends AppModel{
hasMany = array(hpsas,idaps);
}
class hpsas extends AppModel{
belongsTo = array(cinema)
}
class idap extends AppModel{
belongsTo = array(cinema)
}
将递归设置在 2 或 3 以上,对任一模型的简单查询将为您提供所需的所有数据(蛋糕魔术)。