Laravel和嵌套的foreach数据库查询错误

问题描述 投票:0回答:1

我在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,一切正常。当我试图筑巢foreach我得到

试图获得非对象的属性

php laravel laravel-4
1个回答
1
投票
@foreach ($menu2 as $menu2)

这条线很可能是罪魁祸首。您不能在foreach循环中使用相同的变量名两次,并期望获得良好的结果。第二个应该是在循环的每次迭代期间$menu2中的每个条目将被限定为什么。

foreach documentation

尝试更改循环看起来更像这样:

@foreach ($menu2 as $innerMenu)
    <li> <a href="./"> {{$innerMenu->nome}} </a> </li>
 @endforeach

我建议你也可以为你的外部菜单做同样的事情。

© www.soinside.com 2019 - 2024. All rights reserved.