/** * @param $nodes * @param null $parent */ protected static function buildCategoryTree($nodes, $parent = null) { foreach ($nodes as $node) { $category = new Category(['name' => $node['name'], 'announce' => 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.<br>Sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.']); if ($parent === null) { $category->makeRoot(); } else { $category->appendTo($parent); } $category->attachImage(__DIR__ . '/images/categories/' . $category->id . '.jpg'); if (isset($node['nodes'])) { self::buildCategoryTree($node['nodes'], $category); } } }
/** * Updates category attributes from form * * @param Request $request * @param \App\Models\Category $category * @return View */ public function update(EditCategoryRequest $request, Category $category) { // Set and save validated attributes $category->name = $request->input('name'); $category->slug = $request->input('slug'); $category->save(); /** * If parent is set and if parent_id and category->id are not equal, * set parent category */ $parentId = $request->input('parent_id'); if (empty(trim($parentId))) { $category->makeRoot(); } else { $parentCategory = Category::findOrFail($parentId); $category->makeChildOf($parentCategory); } return redirect(route('AdminCategoryIndex')); }