Существует лучший способ сделать это.
Пакет etrepat/baum является настолько прекрасным и легким. В нем есть все, что вам нужно о вложенных элементах. Просто добавьте его в зависимости от композитора и наслаждайтесь.
Вы также можете добавить эти методы в свою Модель и использовать их как отношения.
public function parent() {
return $this->belongsTo(self::class, 'parent_id');
}
public function children() {
return $this->hasMany(self::class, 'parent_id');
}
Тогда вы просто скажете:
$results = MyModel::with('children')->get();
Обновление для комментариев:
$results = Category::select('id','name')->with([
'children' => function($query) {
$query->select('id', 'parent_id');
// You can customize the selected fields for a relationship like this.
// But you should select the `key` of the relationship.
// In this case it's the `parent_id`.
}
])->get();
спасибо, но я не обновлять мой композитор – paranoid
Обновленный ответ. –
И как использовать его в контроллере? – paranoid