在您的场景中, anAdvertisement
属于 a Site
,并且 aSite
可以有很多Advertisement
记录。您也没有按照 CakePHP 的约定命名列。如果一个Advertisement
属于一个Site
,那么你的外键列应该被命名site_id
。
回到手头的问题,您可以将Containable
行为添加到模型中,这样当您查询一个模型时,它的相关数据也会被获取。因此,如果您查询 an Advertisement
,它也会获取相应的Site
记录。您的模型将如下所示:
<?php
class Advertisement extends AppModel {
public $name = 'Advertisement';
public $actsAs = array('Containable');
public $belongsTo = array('Site');
}
你的Site
模型:
<?php
class Site extends AppModel {
public $name = 'Site';
public $actsAs = array('Containable');
public $hasMany = array('Advertisement');
}
然后,您可以像这样查询当前站点中的广告:
public function index() {
$advertisements = $this->Advertisement->find('all');
$this->set('advertisements', $advertisements);
}