我一直在试图找出实现这一目标的最佳方法!基本上,我在层次结构中有三个模型:
Document->hasMany('Page')
Page->belongsTo('Document')->hasMany('Item')
Item->belongsTo('Page')
我的目标是通过主模型上的查询收集所有相关实例:
$layout = Document::with('Page.Item')->where('status', '=', 1)->get();
这将返回一个文档集合,其中包含多个嵌套的页面集合,每个集合都具有嵌套的项集合。当我跑到Array()时,我基本上得到了:
array(
[0]array(
[document-title]
[pages]array(
[page-subject]
[items]array(
[item-content]
))))
我想将其转换为:
array(
[0]array(
[item-content]
[pages-subject]
[document-title]
))
我一直在使用几个foreach循环:
foreach($document as $d){
foreach($d['pages'] as $p{
$pStuff = array($p['subject']);
foreach($p['items'] as $i{
$iStuff = array($i['content']);
$input = array_merge($iStuff, $pStuff);
$data[] = $input;
}}}
这似乎创建了我想要的数组,但我想知道是否有一种更简单的方法,无论是查询模型还是处理集合。
任何帮助将不胜感激,谢谢! -JB