Есть объект folder в БД у которого существует id.
Так же там и другие объекты у которых есть parent_id который равен id родительского фолдера и так же свои поля id title.
Как достать все объекты у которых parent_id = id родителя.
Пробывал так:
public function get($id){
try{
$folder = Folder::find($id);
$folderDataSend = [
$folder->title, $folder->id, $folder->parent_id
];
$folderList = Folder::where('parent_id', '=', $id )->get();
return new JsonResponse(['message'=>'Folder has output',$folderDataSend,$folderList ], 200);
}catch (\Exception $e) {
return $this->SendError($e);
}
}
Но $folderList = Folder::where('parent_id', '=', $id )->get() возвращает только последний найденный элемент.
Нужно получить все объекты.
В идеале получить сразу поля этих объектов: id,title
В модели Folder добавляете вот это
public function scopeMain($query)
{
return $query->where('parent_id', 0);
}
public function parent(){
return $this->belongsTo(Folder::class, 'parent_id');
}
public function subfolders(){
return $this->hasMany(Folder::class, 'parent_id');
}
Первое - возможно пригодится. А второе и третье - это как связи между таблицами, только внутри этой же модели. Т.е. теперь можно
$folder = Folder::first(); //или получаете $folder из роута
$subfolders = $folder->subfolders;
$parent = $folder->parent;
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники