Есть объект 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;
Виртуальный выделенный сервер (VDS) становится отличным выбором
Стоит задача, вывести результат из 2х таблиц в одну коллекцию
Всем привет, пишу сейчас чат-бота для ВКВозникла проблема с пересылкой фотографий