您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

57 行
1.5KB

  1. <?php
  2. namespace Lc\SovBundle\Model\Site;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Lc\SovBundle\Model\Setting\SiteSettingInterface;
  7. use Lc\SovBundle\Doctrine\EntityInterface;
  8. use Lc\SovBundle\Doctrine\Extension\DevAliasInterface;
  9. use Lc\SovBundle\Doctrine\Extension\DevAliasTrait;
  10. abstract class SiteModel implements SiteInterface, EntityInterface, DevAliasInterface
  11. {
  12. use DevAliasTrait;
  13. #[ORM\OneToMany(targetEntity:"Lc\SovBundle\Model\Setting\SiteSettingInterface", mappedBy:"site", orphanRemoval:true, cascade:['persist'], fetch:"EAGER")]
  14. protected $settings;
  15. public function __construct()
  16. {
  17. $this->settings = new ArrayCollection();
  18. }
  19. /**
  20. * @return Collection|SiteSettingInterface[]
  21. */
  22. public function getSettings(): Collection
  23. {
  24. return $this->settings;
  25. }
  26. public function addSetting(SiteSettingInterface $setting): self
  27. {
  28. if (!$this->settings->contains($setting)) {
  29. $this->settings[] = $setting;
  30. $setting->setSite($this);
  31. }
  32. return $this;
  33. }
  34. public function removeSetting(SiteSettingInterface $setting): self
  35. {
  36. if ($this->settings->contains($setting)) {
  37. $this->settings->removeElement($setting);
  38. // set the owning side to null (unless already changed)
  39. if ($setting->getSite() === $this) {
  40. $setting->setSite(null);
  41. }
  42. }
  43. return $this;
  44. }
  45. }