<?php
declare(strict_types=1);
namespace App\Entity\Page;
use App\Entity\Traits\IdTrait;
use App\Entity\Traits\KeepEmptyTranslationTrait;
use Doctrine\ORM\Mapping as ORM;
use Knp\DoctrineBehaviors\Contract\Entity\TranslationInterface;
use Knp\DoctrineBehaviors\Model\Translatable\TranslationTrait;
use Symfony\Component\String\Slugger\AsciiSlugger;
/**
* @ORM\Entity
* @ORM\Table(
* name="page_translation",
* uniqueConstraints={
* @ORM\UniqueConstraint(
* name="unique_page_url_locale",
* columns={"url", "locale"},
* options={"where": "url IS NOT NULL"},
* )
* }
* )
*/
class PageTranslation implements TranslationInterface
{
use IdTrait;
use TranslationTrait;
use KeepEmptyTranslationTrait;
/**
* @ORM\Column(type="string")
*/
private ?string $url = null;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $displayedTitle;
/**
* @ORM\Column(type="json", nullable=true)
*/
private ?array $metaTags = [];
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(?string $url): self
{
$slugger = new AsciiSlugger();
$this->url = $slugger->slug($url ?? '')->toString();
return $this;
}
public function getDisplayedTitle(): ?string
{
return $this->displayedTitle;
}
public function setDisplayedTitle(?string $displayedTitle): self
{
$this->displayedTitle = $displayedTitle;
return $this;
}
public function getMetaTags(): ?array
{
return $this->metaTags;
}
public function setMetaTags(array $metaTags): self
{
$this->metaTags = $metaTags;
return $this;
}
}