Надеюсь, это поможет вам
Метод для хранения данных:
public function store(Request $request) {
$this->validate($request, [
'name' =>'required',
'parent_id' => 'nullable|exists:category,id', //This will check the parent availability
]);
$category= new Category;
if ($request->has('parent_id')) {
$category->parent_id =$request->parent_id;
}
$category->name =$request->name;
$category->save();
return $category;
}
Метод для извлечения всех данных:
public function index() {
$categories = Category::with('children')->all();
return $categories;
}
Метод для получения категории поid:
public function categoryById(Category $category) {
$category = Category::with('children')->where('id', $category->id)->first();
return $category;
}