Completed
Pull Request — master (#2)
by Andrew
03:25
created

SiteController::menuAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 7
ccs 0
cts 7
cp 0
rs 9.4285
cc 1
eloc 5
nc 1
nop 1
crap 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: kate
5
 * Date: 17.02.16
6
 * Time: 9:30
7
 */
8
9
namespace AppBundle\Controller;
10
11
12
use AppBundle\MenuItem\RecursiveMenuItemIterator;
13
use Doctrine\Common\Collections\ArrayCollection;
14
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
15
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
16
use Symfony\Component\HttpFoundation\Request;
17
use Symfony\Component\HttpFoundation\Response;
18
use AppBundle\Entity\Cat as CategoryEntity;
19
20
class SiteController extends Controller
21
{
22
    /**
23
     * @Route("/", name="homepage")
24
     */
25
    public function indexAction(Request $request)
26
    {
27
        return $this->render("AppBundle::site/index.html.twig");
28
    }
29
30
    /**
31
     * @Route("/menu", name="menu")
32
     */
33
    public function menuAction(Request $request)
34
    {
35
        $em = $this->getDoctrine()->getManager();
36
        $categoryEntity = $em->getRepository('AppBundle\Entity\Category');
37
        $categories = $categoryEntity->childrenHierarchy();
38
        return $this->render("AppBundle::includes/menu.html.twig", ['links' => $categories]);
39
    }
40
41
    /**
42
     * @Route("/tree", name="tree")
43
     */
44
    public function treeAction(Request $request)
45
    {
46
        $em = $this->getDoctrine()->getManager();
47
        $repo = $em->getRepository('AppBundle\Entity\Category');
48
        $query = $em
49
            ->createQueryBuilder()
50
            ->select('node')
51
            ->from('AppBundle\Entity\Category', 'node')
52
            ->orderBy('node.root, node.lft', 'ASC')
53
            ->where('node.root = 1')
54
            ->getQuery()
55
        ;
56
        $options = array('decorate' => true);
57
        $tree = $repo->buildTree($query->getArrayResult(), $options);
58
        return $this->render("AppBundle::tree.html.twig", ['tree' => $tree]);
59
    }
60
61
}