2016-07-28 2 views
0

Я застрял в петле foreach внутри моего шаблона клипа после нескольких часов проб и неудач. Мне нужна помощь.Laravel foreach issues

Мой контроллер

public function menue() { 

    $restaurants = User::with('articles')->get();; 

    return view('pages.menues')->withRestaurants($restaurants); 
} 

Мой Еогеасп

@foreach($restaurants as $restaurant) 

     <div class="panel panel-default"> 
      <div class="panel-heading"> 
      @foreach($restaurant->articles as $article) 
       {{$article->title}} 
       <span class="float-right">{{$article->published_at}}</span> 
      @endforeach 
      </div> 

      <div class="panel-body"> 
      @foreach($restaurant->articles as $article) 
       {{$article->body}} 
      @endforeach 

      {{$restaurant->name}} 

      </div> 
     </div> 

     @endforeach 

Это то, что я пытаюсь петлевой корыта:

{ 
     "id":1, 
     "name":"Sam", 
     "email":"[email protected]", 
     "created_at":"2016-07-26 15:03:51", 
     "updated_at":"2016-07-27 15:39:55", 
     "articles":[ 
      { 
      "id":1, 
      "user_id":1, 
      "title":"Monday Afternoon", 
      "body":"got it", 
      "created_at":"2016-07-27 15:31:05", 
      "published_at":"2016-07-27 15:30:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 15:31:05" 
      }, 
      { 
      "id":3, 
      "user_id":1, 
      "title":"Good Morning Wednesday", 
      "body":"lorem ipsum", 
      "created_at":"2016-07-27 11:38:37", 
      "published_at":"2016-07-27 11:38:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 11:38:37" 
      }, 
      { 
      "id":4, 
      "user_id":1, 
      "title":"Good Morning Thursday", 
      "body":"lorem ipsum ", 
      "created_at":"2016-07-27 11:39:14", 
      "published_at":"2016-07-28 14:38:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 11:39:14" 
      }, 
      { 
      "id":5, 
      "user_id":1, 
      "title":"Wednesday Afternoon", 
      "body":"Hallo Welt", 
      "created_at":"2016-07-27 14:55:00", 
      "published_at":"2016-07-27 14:54:00", 
      "excerpt":null, 
      "updated_at":"2016-07-27 14:55:00" 
      } 
     ] 
    } 

выход моего лезвия Templ ate Output of my blade

В результате вместо четырех должностей я получаю только 2 сообщения. Каждый из них содержит другие сообщения. Как я могу отображать все 4 сообщения в отдельности на мой взгляд?

+0

не связано с вашей проблемой, но вы должны рассмотреть [нетерпеливый погрузочные отношения] (https://laravel.com/docs/5.1/eloquent-relationships#eager-loading) вместо пропуская рестораны, а затем итерируя «$ restaurant-> articles» - это спам вашей БД с ненужными запросами, также известными как «проблема N + 1» PS: Хуже то, что вы делаете это дважды (у вас есть 2 отдельных foreach петли) –

ответ

1

Try This

@foreach($restaurants as $restaurant) 
    @foreach($restaurant->articles as $article) 
    <div class="panel panel-default"> 
     <div class="panel-heading"> 
     {{$article->title}} 
     <span class="float-right">{{$article->published_at}}</span> 
     </div> 
     <div class="panel-body">{{$article->body}}</div> 
    </div> 
    @endforeach 
@endforeach 
+0

Спасибо, человек. Это может быть так просто! –

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