/** * Get a list of categories * * @param Request $request * @param string $params * @return void */ protected static function get($request, $params) { try { $categories = Category::query($request->get('queryParams'), $request->include); } catch (OutOfBoundsException $e) { $categories = Category::findAll($request->include); } static::response($categories, 200); }
public function testRebuildRecomputesDepth() { $this->assertTrue(Category::isValidNestedSet()); Category::query()->update(array('lft' => null, 'rgt' => null, 'depth' => 0)); $this->assertFalse(Category::isValidNestedSet()); Category::rebuild(); $expected = array(0, 1, 1, 2, 1, 0); $this->assertEquals($expected, Category::all()->map(function ($n) { return $n->getDepth(); })->all()); }
public function testChildrenRelationObeysDefaultOrdering() { $children = $this->categories('Root 1')->children()->get()->all(); $expected = array($this->categories('Child 1'), $this->categories('Child 2'), $this->categories('Child 3')); $this->assertEquals($expected, $children); // Swap 2 nodes & re-test Category::query()->where('id', '=', 2)->update(array('lft' => 8, 'rgt' => 9)); Category::query()->where('id', '=', 5)->update(array('lft' => 2, 'rgt' => 3)); $children = $this->categories('Root 1')->children()->get()->all(); $expected = array($this->categories('Child 3'), $this->categories('Child 2'), $this->categories('Child 1')); $this->assertEquals($expected, $children); }
public function _navigation($view) { $departments = array(); if ($deps = Department::query()->where([['`active`', '=', 1]])->order_by('`order`')->get()) { while ($row = $deps->fetch_assoc()) { $department = new Department($row); if ($cats = Category::query()->where([['`active`', '=', 1], ['`id_department`', '=', $department->id]])->order_by('`order`')->get()) { $categories = array(); while ($other_row = $cats->fetch_assoc()) { $category = new Category($other_row); array_push($categories, $category); } $department->categories = $categories; } array_push($departments, $department); } } $this->render('views/_shared/' . $view, ['departments' => $departments]); }
public function deleteNews($minititolo) { return parent::query("DELETE FROM {$this->prefix}news WHERE minititolo='{$minititolo}'") ? true : false; }
public function testToHierarchyNestsCorrectly() { // Prune all categories Category::query()->delete(); // Build a sample tree structure: // // - A // |- A.1 // |- A.2 // - B // |- B.1 // |- B.2 // |- B.2.1 // |- B.2.2 // |- B.2.2.1 // |- B.2.3 // |- B.3 // - C // |- C.1 // |- C.2 // - D // $a = Category::create(array('name' => 'A')); $b = Category::create(array('name' => 'B')); $c = Category::create(array('name' => 'C')); $d = Category::create(array('name' => 'D')); $ch = Category::create(array('name' => 'A.1')); $ch->makeChildOf($a); $ch = Category::create(array('name' => 'A.2')); $ch->makeChildOf($a); $ch = Category::create(array('name' => 'B.1')); $ch->makeChildOf($b); $ch = Category::create(array('name' => 'B.2')); $ch->makeChildOf($b); $ch2 = Category::create(array('name' => 'B.2.1')); $ch2->makeChildOf($ch); $ch2 = Category::create(array('name' => 'B.2.2')); $ch2->makeChildOf($ch); $ch3 = Category::create(array('name' => 'B.2.2.1')); $ch3->makeChildOf($ch2); $ch2 = Category::create(array('name' => 'B.2.3')); $ch2->makeChildOf($ch); $ch = Category::create(array('name' => 'B.3')); $ch->makeChildOf($b); $ch = Category::create(array('name' => 'C.1')); $ch->makeChildOf($c); $ch = Category::create(array('name' => 'C.2')); $ch->makeChildOf($c); $this->assertTrue(Category::isValidNestedSet()); // Build expectations (expected trees/subtrees) $expectedWholeTree = array('A' => array('A.1' => null, 'A.2' => null), 'B' => array('B.1' => null, 'B.2' => array('B.2.1' => null, 'B.2.2' => array('B.2.2.1' => null), 'B.2.3' => null), 'B.3' => null), 'C' => array('C.1' => null, 'C.2' => null), 'D' => null); $expectedSubtreeA = array('A' => array('A.1' => null, 'A.2' => null)); $expectedSubtreeB = array('B' => array('B.1' => null, 'B.2' => array('B.2.1' => null, 'B.2.2' => array('B.2.2.1' => null), 'B.2.3' => null), 'B.3' => null)); $expectedSubtreeC = array('C.1' => null, 'C.2' => null); $expectedSubtreeD = array('D' => null); // Perform assertions $wholeTree = hmap(Category::all()->toHierarchy()->toArray()); $this->assertArraysAreEqual($expectedWholeTree, $wholeTree); $subtreeA = hmap($this->categories('A')->getDescendantsAndSelf()->toHierarchy()->toArray()); $this->assertArraysAreEqual($expectedSubtreeA, $subtreeA); $subtreeB = hmap($this->categories('B')->getDescendantsAndSelf()->toHierarchy()->toArray()); $this->assertArraysAreEqual($expectedSubtreeB, $subtreeB); $subtreeC = hmap($this->categories('C')->getDescendants()->toHierarchy()->toArray()); $this->assertArraysAreEqual($expectedSubtreeC, $subtreeC); $subtreeD = hmap($this->categories('D')->getDescendantsAndSelf()->toHierarchy()->toArray()); $this->assertArraysAreEqual($expectedSubtreeD, $subtreeD); $this->assertTrue($this->categories('D')->getDescendants()->toHierarchy()->isEmpty()); }
public function testTreeIsValidWithMissingMiddleNode() { $this->assertTrue(Category::isValidNestedSet()); Category::query()->delete($this->categories('Child 2')->getKey()); $this->assertTrue(Category::isValidNestedSet()); }