public function getMenuContext($locale) { $menuData = $this->getMenuData()[$locale]; $menu = new Menu(); $menu->setName($menuData['name']); $menu->setMachineName($menuData['machineName']); $menu->setLocale($menuData['locale']); $collectionA = new ArrayCollection(); for ($i = 1; $i <= 5; $i++) { $itemA = $this->newItem($menu, $i); $collectionB = new ArrayCollection(); for ($j = 1; $j <= 5; $j++) { $itemB = $this->newItem($menu, $j, $itemA); $collectionB->add($itemB); $collectionC = new ArrayCollection(); for ($k = 1; $k <= 5; $k++) { $itemC = $this->newItem($menu, $k); $collectionC->add($itemC); } $itemB->addChildren($collectionC); } $itemA->addChildren($collectionB); $collectionA->add($itemA); } $menu->addItems($collectionA); return $menu; }
public function findItemsByMenu(Menu $menu) { return $this->createQueryBuilder('i')->join('i.menu', 'm')->where('m.id = :id')->setParameters(['id' => $menu->getId()])->addOrderBy('i.position', 'ASC')->getQuery()->getResult(); }