protected function url(MenuItem $item, $type)
 {
     $route = $item->getRoute()->getRoute();
     $parameters = [];
     /** @var MenuItemParameter $parameter */
     foreach ($item->getParameters() as $parameter) {
         $key = $parameter->getParameter()->getParameter();
         $parameters[$key] = $this->getValue($parameter);
     }
     return $this->router->generate($route, $parameters, $type);
 }
 public function save(MenuItem $item)
 {
     $em = $this->getEntityManager();
     $conn = $em->getConnection();
     $conn->beginTransaction();
     try {
         foreach ($item->getParameters() as $parameter) {
             $em->persist($parameter);
         }
         $em->persist($item);
         $em->flush();
         $conn->commit();
     } catch (\Exception $e) {
         $conn->rollBack();
         throw $e;
     }
 }