public function testToTreeBuildsWithRootItemIdProvided() { $tree = Category::whereBetween('_lft', array(8, 17))->get()->toTree(5); $this->assertEquals(4, count($tree)); $root = $tree[1]; $this->assertEquals('samsung', $root->name); $this->assertEquals(1, count($root->children)); }
/** * Display all categories of all cities * GET /categories * * @return Response */ public function all() { $baseCategories = [1, 58]; $user = Auth::user(); $subscriptions = $user->subscriptions; $categories = Category::whereBetween('id', $baseCategories)->whereNull('parent_id')->with(['categories' => function ($query) { $query->orderBy('weight', 'desc')->orderBy('id'); }])->orderBy('weight', 'desc')->orderBy('id')->get(); if ($categories->isEmpty()) { return $this->respondNotFound('forum.no-categories'); } $computedCategories = $user->subscriptions()->whereNotBetween('id', $baseCategories)->get(); if ($computedCategories->count() != 0) { $myCarCategory = new Category(['title' => 'Моя машина']); $myCarCategory->id = 0; $myCarCategory->categories = $computedCategories; $categories->prepend($myCarCategory); } return $this->respond($this->collectionTransformer->transformCategories($categories, true, $subscriptions)); }