src/Entity/Content/Menus/Menu.php line 14

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Content\Menus;
  3. use Symfony\Component\Validator\Constraints AS Constraints;
  4. use Symfony\Component\Validator\Constraints AS Assert;
  5. use Doctrine\ORM\Mapping AS ORM;
  6. use Ramsey\Uuid\Uuid;
  7. use App\Entity\BaseEntity;
  8. /**
  9.  * @ORM\Entity(repositoryClass="App\Repository\Content\Menus\MenuRepository")
  10.  * @ORM\Table(name="content_menus_menu")
  11.  */
  12. class Menu extends BaseEntity
  13. {
  14.     /**
  15.     * @ORM\Id
  16.     * @ORM\GeneratedValue(strategy="AUTO")
  17.     * @ORM\Column(type="integer")
  18.     */
  19.     private $id;
  20.     /**
  21.      * @ORM\Column(type="uuid")
  22.      * @Assert\Uuid
  23.      */
  24.      protected $uuid;
  25.     /**
  26.      * @var \DateTime
  27.      *
  28.      * @ORM\Column(type="datetime", nullable=false)
  29.      */
  30.     private $created;
  31.     /**
  32.      * @ORM\Column(type="string", length=60, nullable=false)
  33.      */
  34.     private $identifier;
  35.     /**
  36.      * @ORM\Column(type="string", length=60, nullable=false)
  37.      */
  38.     private $name;
  39.     /**
  40.      * @ORM\Column(type="boolean", nullable=true)
  41.      */
  42.     private $isLocked;
  43.     /**
  44.      * @ORM\Column(type="boolean", nullable=true)
  45.      */
  46.     private $disableChildItems;
  47.     /**
  48.      * @ORM\OneToMany(targetEntity="MenuItem", mappedBy="menu", cascade={"all"})
  49.      * @ORM\OrderBy({"displayOrder" = "ASC"})
  50.      **/
  51.     private $menuItems;
  52.     public function __construct(array $defaults = array())
  53.     {
  54.         // Defaults
  55.         $this->setUuid(Uuid::uuid4());
  56.         $this->setCreated(new \DateTime());
  57.         $this->setIsLocked(false);
  58.         $this->setDisableChildItems(false);
  59.         parent::__construct($defaults);
  60.     }
  61.     public function getTopLevelMenuItems()
  62.     {
  63.         $menuItemAray = array();
  64.         $menuItems $this->getMenuItems();
  65.         if(!count($menuItems))
  66.             return $menuItemAray;
  67.         // Loop items
  68.         foreach($menuItems AS $someItem)
  69.         {
  70.             if(!$someItem->getParent())
  71.                 $menuItemAray[] = $someItem;
  72.         }
  73.         return $menuItemAray;
  74.     }
  75.     public function __toString()
  76.     {
  77.         return $this->getName();
  78.     }
  79.     public function getId()
  80.     {
  81.         return $this->id;
  82.     }
  83.     public function setUuid($uuid)
  84.     {
  85.         $this->uuid $uuid;
  86.         return $this;
  87.     }
  88.     public function getUuid()
  89.     {
  90.         return $this->uuid;
  91.     }
  92.     public function setCreated(\DateTime $created)
  93.     {
  94.         $this->created $created;
  95.     }
  96.     public function getCreated()
  97.     {
  98.         return $this->created;
  99.     }
  100.     public function getName()
  101.     {
  102.         return $this->name;
  103.     }
  104.     public function setName(string $name)
  105.     {
  106.         $this->name $name;
  107.     }
  108.     public function getIdentifier()
  109.     {
  110.         return $this->identifier;
  111.     }
  112.     public function setIdentifier(string $identifier)
  113.     {
  114.         $this->identifier $identifier;
  115.     }
  116.     public function getIsLocked()
  117.     {
  118.         return $this->isLocked;
  119.     }
  120.     public function setIsLocked($isLocked)
  121.     {
  122.         $this->isLocked $isLocked;
  123.     }
  124.     public function getDisableChildItems()
  125.     {
  126.         return $this->disableChildItems;
  127.     }
  128.     public function setDisableChildItems($disableChildItems)
  129.     {
  130.         $this->disableChildItems $disableChildItems;
  131.     }
  132.     public function addMenuItem(\App\Entity\Content\Menus\MenuItem $menuItem)
  133.     {
  134.         if(!in_array($menuItem, (array)$this->menuItems))
  135.             $this->menuItems[] = $menuItem;
  136.         if($menuItem->getMenu() != $this)
  137.             $menuItem->setMenu($this);
  138.         return $this;
  139.     }
  140.     public function removeMenuItem(\App\Entity\Content\Menus\MenuItem $menuItem)
  141.     {
  142.         $this->menuItems->removeElement($menuItem);
  143.         $menuItem->setMenu(null);
  144.     }
  145.     public function getMenuItems()
  146.     {
  147.         return $this->menuItems;
  148.     }
  149. }