在您的场景中, 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);
}