CategoryUuid.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace Tree\Fixture;
  3. use Gedmo\Tree\Node as NodeInterface;
  4. use Gedmo\Mapping\Annotation as Gedmo;
  5. use Doctrine\ORM\Mapping as ORM;
  6. /**
  7. * @ORM\Entity(repositoryClass="Gedmo\Tree\Entity\Repository\NestedTreeRepository")
  8. * @Gedmo\Tree(type="nested")
  9. * @ORM\HasLifecycleCallbacks
  10. */
  11. class CategoryUuid implements NodeInterface
  12. {
  13. /**
  14. * @ORM\Column(name="id", type="string", nullable=false)
  15. * @ORM\Id
  16. * @ORM\GeneratedValue(strategy="NONE")
  17. */
  18. private $id;
  19. /**
  20. * @ORM\Column(name="title", type="string", length=64)
  21. */
  22. private $title;
  23. /**
  24. * @Gedmo\TreeLeft
  25. * @ORM\Column(name="lft", type="integer")
  26. */
  27. private $lft;
  28. /**
  29. * @Gedmo\TreeRight
  30. * @ORM\Column(name="rgt", type="integer")
  31. */
  32. private $rgt;
  33. /**
  34. * @Gedmo\TreeParent
  35. * @ORM\ManyToOne(targetEntity="CategoryUuid", inversedBy="children")
  36. * @ORM\JoinColumns({
  37. * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL")
  38. * })
  39. */
  40. private $parentId;
  41. /**
  42. * @Gedmo\TreeLevel
  43. * @ORM\Column(name="lvl", type="integer")
  44. */
  45. private $level;
  46. /**
  47. * @Gedmo\TreeRoot
  48. * @ORM\Column(name="root", type="string")
  49. */
  50. private $root;
  51. /**
  52. * @ORM\OneToMany(targetEntity="CategoryUuid", mappedBy="parent")
  53. */
  54. private $children;
  55. /**
  56. * @ORM\OneToMany(targetEntity="Article", mappedBy="category")
  57. */
  58. private $comments;
  59. /**
  60. * Creates a random uuid on persist
  61. *
  62. * @return void
  63. * @ORM\PrePersist
  64. */
  65. public function createId(){
  66. $this->id = bin2hex(pack('N2', mt_rand(), mt_rand()));
  67. }
  68. public function getId()
  69. {
  70. return $this->id;
  71. }
  72. public function setTitle($title)
  73. {
  74. $this->title = $title;
  75. }
  76. public function getTitle()
  77. {
  78. return $this->title;
  79. }
  80. public function setParent(CategoryUuid $parent)
  81. {
  82. $this->parentId = $parent;
  83. }
  84. public function getParent()
  85. {
  86. return $this->parentId;
  87. }
  88. public function getLeft()
  89. {
  90. return $this->lft;
  91. }
  92. public function getRight()
  93. {
  94. return $this->rgt;
  95. }
  96. public function getLevel()
  97. {
  98. return $this->level;
  99. }
  100. }