2014-03-18 3 views
0

Я создаю меню на laravel.Lavarel и вложенный foreach ошибки запроса базы данных

В макете лопастной я есть:

@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'))] 
     ); 
} 

Я пытался установить UNeest foreach, и все работает нормально. Когда я пытаюсь гнездо Еогеаспа я получаю

Попытки получить свойство необъектного

ответ

0
@foreach ($menu2 as $menu2) 

Этой линия, скорее всего, виновник. Вы не можете использовать одно и то же имя переменной дважды в цикле foreach и ожидать хороших результатов. Второй должен быть тем, что каждая запись в $menu2 будет облагаться во время каждой итерации цикла.

См foreach documentation

Попробуйте изменить цикл, чтобы выглядеть следующим образом:

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

Я предложил бы делать то же самое для вашего внешнего меню, а также.

Смежные вопросы