我有两个模型,新闻和项目。新闻有一个参考模型,部分。项目具有引用的模型"子组"。"新闻"和"项目"都有一个"已创建"字段。我想在我的主页上显示最后 5 个新闻或项目项目。
所以我找到了这篇文章,并按照它所说的做了,即:
$newsAndProjects = array();
$news = $this->News->find( ... );
foreach ($news as $k => $v) {
$newsAndProjects[] = $v['News'];
}
$projects = $this->Project->find( ... );
foreach ($projects as $k => $v) {
$newsAndProjects[] = $v['Project'];
}
if (sizeof($newsAndProjects) > 1) {
$newsAndProjects = Set::sort($newsAndProjects, '/created', 'DESC');
}
我认为它工作得很好。但是当我尝试访问引用的新闻或项目模型时,出现错误。
我注意到的是,而我曾经能够做到这一点:
$news['News']['title']
$news['News']['Section']
或
$projects['Project']['title']
$projects['Project']['SubGroup']
。进入$newsAndProjects数组后,我必须直接访问模型,即:
$newsAndProjects['title']
我什至不再有"部分"或"子组"模型,而是:
$newsAndProjects['section_id']
$newsAndProjects['sub_group_id']
。这意味着我无法再访问例如部分或子组名称、ID 等。
如何取回此信息?
真是个假人。我想通了。我对 Cake 和 php 数组的不熟悉是问题所在。
我引用的模型没有显示,因为我正在这样做
$newsAndProjects[] = $v['News'];
$newsAndProjects[] = $v['Project'];
而不是这个
$newsAndProjects[] = $v;
$newsAndProjects[] = $v;
即。我只是将"根"模型(新闻或项目)放在$newsAndProjects数组中,而不是$v整个模型对象及其相应的引用模型。
希望这篇文章有一天能为某人节省一些时间。