Jobtype.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. //use Doctrine\Common\Collections\ArrayCollection;
  3. /**
  4. * @Entity @Table(name="jobtypes")
  5. */
  6. class Jobtype extends BaseDBO
  7. {
  8. /**
  9. * Many Jobtypes have Many Accounts.
  10. * @ManyToMany(targetEntity="Account",inversedBy="jobtypes")
  11. * @JoinTable(name="accounts_jobtypes",)
  12. */
  13. private $accounts;
  14. /**
  15. * Many Jobtype have Many Tasktypes.
  16. * @ManyToMany(targetEntity="Tasktype",inversedBy="jobtypes")
  17. * @JoinTable(name="jobtypes_tasktypes",)
  18. */
  19. private $tasktypesrel;
  20. // public function __construct() {
  21. //// $this->tasktypes = new \Doctrine\Common\Collections\ArrayCollection();
  22. // $this->accounts = new \Doctrine\Common\Collections\ArrayCollection();
  23. // }
  24. /**
  25. * @Id @Column(type="integer") @GeneratedValue
  26. */
  27. private $id;
  28. public function __get($id)
  29. {
  30. return $this->id;
  31. }
  32. /** @Column(type="string") */
  33. public $name;
  34. /**
  35. * @var integer
  36. *
  37. * @Column(type="integer")
  38. */
  39. private $company;
  40. /**
  41. * @var string
  42. *
  43. * @Column(type="string")
  44. */
  45. public $tasktypes;
  46. public function getId(): int
  47. {
  48. return $this->id;
  49. }
  50. public function setName(string $name): self
  51. {
  52. $this->name = $name;
  53. return $this;
  54. }
  55. //допустим нужно создать должность и привязать ее к пользователю
  56. //создаем объект "Должность"
  57. //$jobtypes = new Jobtypes();
  58. //
  59. //Добавляем поля все какие нужно
  60. //$jobtypes->setName('мойщик окон');
  61. //
  62. //Получаем объект пользователя допустим по ид
  63. //$productRepository = $entityManager->getRepository('Accounts')->findOneBy(['id' => 27 ] );
  64. //
  65. //объект с пользователем ну жно вставить в геттер ( их нужно прописывать в класе)
  66. //$jobtypes->addAcoountJobtypes($productRepository);
  67. //
  68. //И все, дальше сохр.
  69. //$entityManager->persist($jobtypes);
  70. //$entityManager->flush();
  71. //
  72. //Будет добавлена новая должность и в промежуточной таблице появится запись "привязка"
  73. public function getCompany(): int
  74. {
  75. return $this->company;
  76. }
  77. public function setCompany(int $company): self
  78. {
  79. $this->company = $company;
  80. return $this;
  81. }
  82. // public function getTasktypes(): string
  83. // {
  84. // return $this->tasktypes;
  85. // }
  86. //
  87. // public function setTasktypes(string $tasktypes): self
  88. // {
  89. // $this->tasktypes = $tasktypes;
  90. //
  91. // return $this;
  92. // }
  93. public function getAccountsRel()
  94. {
  95. return $this->accounts;
  96. }
  97. public function getTaskTypes()
  98. {
  99. return $this->tasktypesrel;
  100. }
  101. public function addAcoountJobtypes(Account $account)
  102. {
  103. return $this->accounts[] = $account;
  104. }
  105. public function addTasktype(Tasktype $tasktype)
  106. {
  107. return $this->tasktypesrel[] = $tasktype;
  108. }
  109. }