cakephp和条件

时间:2014-01-31 12:22:29

标签: mysql cakephp

我有两张桌子

包含字段的officetypes:id [pk],name,在

带有字段的officenames:id [pk],name,officetype_id [fk]

两种型号 Officename.php

class Officename extends AppModel {

    public $name = 'Officename';
    public $belongsTo = array(
        'Officetype' => array(
            'className'     => 'Officetype',
            'foreignkey'=>'id'
        )
    );

Officetype.php

var $hasMany = array(
        'Officename' => array(
            'className'     => 'Officename'               

        )
    );

现在我如何在控制器中编写条件来加入这两个表。我的条件是这样的:

SELECT a. * , b. *  FROM officetypes AS a, officenames AS b    
    WHERE  
        a.id =3    
    AND 
        b.officeid = a.under

2 个答案:

答案 0 :(得分:0)

你只需要这样做:

$this->Officetype->find('all');

答案 1 :(得分:0)

如果你这样做:

$this->OfficeType->find('all')

您将检索所需的数据。

无论如何,根据我的经验,最好使用可包含的行为,特别是如果您想要扩展模型。使用Containable,您只能检索所需的模型。 所以这样做:

class OfficeType extends AppModel {

public $actsAs = array('Containable');
public $hasMany = array(
    'OfficeName
);

然后,在你的控制器中使用:

$this->OfficeType->find('all', array(
    'contain' => 'OfficeName',
    'conditions' => array('id' => 3)
     )