2016-08-03 5 views
0

У меня есть модель от одного до многих. WorkoutDetails, который имеет множество упражнений.Получить свойство объекта

Я смог отобразить все данные для упражнений, но мне нужно только свойство «Название».

В контроллере у меня

public function getDetails($id){ 

     $details = WorkoutDetails::where('parent_id','=',$id)->get(); 


     return View::make('menu_renderer.partials.details')->with('details', $details); 
    } 

А в HTML У меня

@foreach($details as $detail) 
     <div> 
      <ul> 
       {{$detail->exercises}} 
      </ul> 
     </div> 
@endforeach 

И выход:

[{ "ID": 1, "type_id": 0, «title»: «Упражнение один», «подробнее»: «Подробности « Управлять одним »,« медиа »:« 5 »,« created_at »:« 0001-11-30 00:00:00 », updated_at ":" - 0001 -11-30 00:00:00 "}] [{" id ": 2," type_id ": 0," title ":" Упражнение два "," подробнее ":" Подробности Упражнение два "," : «2», «created_at»: «0001-11-30 00:00:00», «updated_at»: «0001-11-30 00:00:00»}] [{"id": 3, «type_id»: 0, «title»: «Упражнение три», «подробнее»: «Подробности Упражнение три», «media»: «6», «created_at»: «0001-11-30 00: 00:00 "," updated_at ":" - 0001-11-30 00:00:00 "}] [{" id ": 4," type_id ": 0," title ":" Упражнение четыре "," подробнее ":" Подробности Упражнение четыре "," media ":" 6 "," created_at ":" - 0001-11-30 00:00:00 "," updated_at ":" - 0001-11-30 00:00 : 00 "}]

Что плохого , но мне нужно только название или подробности.

Я попытался

@foreach($details as $detail) 
     <div> 
      <ul> 
       {{$detail->exercises->title}} 
      </ul> 
     </div> 
@endforeach 

или

@foreach($details as $detail) 
     <div> 
      <ul> 
       {{$detail->exercises.title}} 
      </ul> 
     </div> 
@endforeach 

или

@foreach($details as $detail) 
     <div> 
      <ul> 
       {{$detail->exercises[title]}} 
      </ul> 
     </div> 
@endforeach 

Но ничего ...

Может кто-нибудь дать мне подсказку, как можно отобразить только название или данные каждого Ex ercise, которая принадлежит модели WorkoutDetails?

Спасибо!

ответ

1

Из предоставленного дампа кажется, что другой массив содержит внутренние данные.

поэтому попробуйте:

@foreach($details as $detail) 
     <div> 
      <ul> 
       {{$detail->exercises[0][title]}} 
       // or : 
       {{$detail->exercises[0]->title}} 
      </ul> 
     </div> 
@endforeach 
+0

Это сработало! Большое спасибо !! – codi05ro

0

Вы можете использовать функцию Laravel запроса first() пикап первого объекта.

@foreach($details as $detail) 
    <div> 
     <ul> 
      {{ $detail->exercises->first()->title }} 
     </ul> 
    </div> 
@endforeach 
Смежные вопросы