2015-12-16 4 views

ответ

1

Существует лучший способ сделать это.

Пакет 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(); 
+0

спасибо, но я не обновлять мой композитор – paranoid

+1

Обновленный ответ. –

+0

И как использовать его в контроллере? – paranoid

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