Php 在数组中组合两个不同的模型进行排序,引用的模型丢失
我有两个模型,新闻和项目。新闻有一个被引用的模型,节。项目有一个被引用的模型,即子组。新闻和项目都有一个“已创建”字段。我想在我的主页上显示最近5条新闻或项目 于是我找到了帖子,照上面说的做了:Php 在数组中组合两个不同的模型进行排序,引用的模型丢失,php,cakephp-2.0,Php,Cakephp 2.0,我有两个模型,新闻和项目。新闻有一个被引用的模型,节。项目有一个被引用的模型,即子组。新闻和项目都有一个“已创建”字段。我想在我的主页上显示最近5条新闻或项目 于是我找到了帖子,照上面说的做了: $newsAndProjects = array(); $news = $this->News->find( ... ); foreach ($news as $k => $v) { $newsAndProjects[] = $v['News']; } $projects
$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']
或
。。。进入$newsAndProjects数组后,我必须直接访问模型,即:
$newsAndProjects['title']
我甚至不再有“部分”或“子组”模型,而是:
$newsAndProjects['section_id']
$newsAndProjects['sub_group_id']
。。。例如,这意味着我不能再访问节或子组名称、id等
我怎样才能找回这些信息?真是个傻瓜。我想出来了。我不熟悉php中的蛋糕和数组,这就是问题所在 我的参考模型没有出现,因为我正在这样做
$newsAndProjects[] = $v['News'];
$newsAndProjects[] = $v['Project'];
而不是这个
$newsAndProjects[] = $v;
$newsAndProjects[] = $v;
我只是把“根”模型(新闻或项目)放在$newsAndProjects数组中,而不是$v,整个模型对象及其相应的引用模型
希望有一天,这篇文章能为人们节省一些时间
$newsAndProjects[] = $v;
$newsAndProjects[] = $v;