src/Entity/Page/PageTranslation.php line 29

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Entity\Page;
  4. use App\Entity\Traits\IdTrait;
  5. use App\Entity\Traits\KeepEmptyTranslationTrait;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Knp\DoctrineBehaviors\Contract\Entity\TranslationInterface;
  8. use Knp\DoctrineBehaviors\Model\Translatable\TranslationTrait;
  9. use Symfony\Component\String\Slugger\AsciiSlugger;
  10. /**
  11.  * @ORM\Entity
  12.  * @ORM\Table(
  13.  *      name="page_translation",
  14.  *      uniqueConstraints={
  15.  *          @ORM\UniqueConstraint(
  16.  *              name="unique_page_url_locale",
  17.  *              columns={"url", "locale"},
  18.  *              options={"where": "url IS NOT NULL"},
  19.  *          )
  20.  *      }
  21.  * )
  22.  */
  23. class PageTranslation implements TranslationInterface
  24. {
  25.     use IdTrait;
  26.     use TranslationTrait;
  27.     use KeepEmptyTranslationTrait;
  28.     /**
  29.      * @ORM\Column(type="string")
  30.      */
  31.     private ?string $url null;
  32.     /**
  33.      * @ORM\Column(type="string", length=255, nullable=true)
  34.      */
  35.     private ?string $displayedTitle;
  36.     /**
  37.      * @ORM\Column(type="json", nullable=true)
  38.      */
  39.     private ?array $metaTags = [];
  40.     public function getUrl(): ?string
  41.     {
  42.         return $this->url;
  43.     }
  44.     public function setUrl(?string $url): self
  45.     {
  46.         $slugger = new AsciiSlugger();
  47.         $this->url $slugger->slug($url ?? '')->toString();
  48.         return $this;
  49.     }
  50.     public function getDisplayedTitle(): ?string
  51.     {
  52.         return $this->displayedTitle;
  53.     }
  54.     public function setDisplayedTitle(?string $displayedTitle): self
  55.     {
  56.         $this->displayedTitle $displayedTitle;
  57.         return $this;
  58.     }
  59.     public function getMetaTags(): ?array
  60.     {
  61.         return $this->metaTags;
  62.     }
  63.     public function setMetaTags(array $metaTags): self
  64.     {
  65.         $this->metaTags $metaTags;
  66.         return $this;
  67.     }
  68. }