NavPointOfInterest.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace Doctrine\Tests\Models\Navigation;
  3. /**
  4. * @Entity
  5. * @Table(name="navigation_pois")
  6. */
  7. class NavPointOfInterest
  8. {
  9. /**
  10. * @Id
  11. * @Column(type="integer", name="nav_long")
  12. */
  13. private $long;
  14. /**
  15. * @Id
  16. * @Column(type="integer", name="nav_lat")
  17. */
  18. private $lat;
  19. /**
  20. * @Column(type="string")
  21. */
  22. private $name;
  23. /**
  24. * @ManyToOne(targetEntity="NavCountry", inversedBy="pois")
  25. */
  26. private $country;
  27. /**
  28. * @ManyToMany(targetEntity="NavUser", cascade={"persist"})
  29. * @JoinTable(name="navigation_pois_visitors",
  30. * inverseJoinColumns={@JoinColumn(name="user_id", referencedColumnName="id")},
  31. * joinColumns={
  32. * @JoinColumn(name="poi_long", referencedColumnName="nav_long"),
  33. * @JoinColumn(name="poi_lat", referencedColumnName="nav_lat")
  34. * }
  35. * )
  36. */
  37. private $visitors;
  38. public function __construct($lat, $long, $name, $country)
  39. {
  40. $this->lat = $lat;
  41. $this->long = $long;
  42. $this->name = $name;
  43. $this->country = $country;
  44. $this->visitors = new \Doctrine\Common\Collections\ArrayCollection;
  45. }
  46. public function getLong() {
  47. return $this->long;
  48. }
  49. public function getLat() {
  50. return $this->lat;
  51. }
  52. public function getName() {
  53. return $this->name;
  54. }
  55. public function getCountry() {
  56. return $this->country;
  57. }
  58. public function addVisitor(NavUser $user)
  59. {
  60. $this->visitors[] = $user;
  61. }
  62. public function getVisitors()
  63. {
  64. return $this->visitors;
  65. }
  66. }