Массив с дочерними элементами

Рейтинг: 0Ответов: 1Опубликовано: 11.02.2015

Laravel 5

Есть модель "категории", которая hasMany "Позиции".

Как вывести списком все категории и вложенные в них позиции?

$cat = Categoty::all();
$cat_1 = Item::where('cat_id','=',1)->take(2)->get();
$cat_2 = Item::where('cat_id','=',2)->take(2)->get();
$cat_3 = Item::where('cat_id','=',3)->take(2)->get();

return view('admin.dashboard')->with([
        'cat' => $cat,
        'cat_1' => $cat_1,
        'cat_2' => $cat_2,
        'cat_3' => $cat_3,
    ]);

Пока что это так выглядит.

Ответы

▲ 1
$cats = Categoty::all();
foreach($cats as $cat){
  $positions = $cat->positions();
}

При том что у вас в моделе Category прописанно

public function positions(){
  return $this->hasMany('Position', 'categoty_id');
}

А в Position моделе (Если нужно узнать категорию по позиции

public function category(){
   return $this->belongsTo('Category');
}

Ну и конечно БД должен соответсвовать.