我有两张桌子
包含字段的officetypes:id [pk],name,在
下带有字段的officenames:id [pk],name,officetype_id [fk]
两种型号 Officename.phpclass 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
答案 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)
)