我正在laravel上建立一个菜单。
在刀片布局中我有:
@foreach ($menu1 as $menu1)
{{$menu1->nome}}
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion" href="#collapseOne">
<span class="glyphicon glyphicon-chevron-down"></span>
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse in">
<div class="panel-body">
<ul class="list-unstyled">
@foreach ($menu2 as $menu2)
<li> <a href="./"> {{$menu2->nome}} </a> </li>
@endforeach
</ul>
</div>
</div>
</div>
@endforeach
在我的控制器中我传递了2个查询。
public function menu($lingua)
{
return View::make('index', ['menu1'=>DB::table('cat_nome')->join('lingua', 'cat_nome.id_lingua', '=', 'lingua.id') ->where('lingua.lingua','=',$lingua)->get(array('cat_nome.nome')),
'menu2' => DB::table('campo_nome')->join('lingua', 'campo_nome.id_lingua', '=', 'lingua.id') ->where('lingua.lingua','=',$lingua)->get(array('campo_nome.nome'))]
);
}
我试图联合前线,一切正常。当我试图嵌套foreach时,我得到了
尝试获取非对象的属性
答案 0 :(得分:1)
@foreach ($menu2 as $menu2)
这条线很可能是罪魁祸首。您不能在foreach
循环中使用相同的变量名两次,并期望获得良好的结果。第二个应该是在循环的每次迭代期间将$menu2
中的每个条目作为范围。
尝试将循环更改为更像这样:
@foreach ($menu2 as $innerMenu)
<li> <a href="./"> {{$innerMenu->nome}} </a> </li>
@endforeach
我建议您也为外部菜单做同样的事情。