CakePHP 2.0内连接和创建视图

时间:2012-08-16 13:44:23

标签: mysql cakephp cakephp-2.0

我是Cakephp 2.0中的新手,但我想用Inner Join来查看两个表。 我有以下表格表:

带有记录的

hpsas:id,ciname,location,status

ldaps记录:id,ciname,status

我在MySQL中的查询是:

SELECT * FROM hpsas INNER JOIN ldaps ON hpsas.ciname = ldaps.ciname;

我必须在模型,控制器或视图中使用哪种语法。

2 个答案:

答案 0 :(得分:0)

$options['joins'] = array(
    array('table' => 'ldaps',
        'type' => 'inner',
        'conditions' => array(
            'hpsas.ciname = ldaps.ciname',
        )
    )
);

$this->Hpsa->find('all', $options);

有关详细信息,请参阅关于关联的Cake书部分:http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#joining-tables

答案 1 :(得分:0)

遵循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以上的任何一个模型的简单查询将为您提供所需的所有数据(蛋糕魔术)。