<?php
namespace App\Entity\Page;
use App\Entity\Blog\Article;
use App\Repository\PageRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use App\Controller\Traits\UrlMaker;
#[ORM\Entity(repositoryClass: PageRepository::class)]
class Page
{
use UrlMaker;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
private ?string $nom = null;
#[ORM\Column(length: 255)]
private ?string $url = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $metas = null;
#[ORM\Column(nullable: false, options: [ 'default' => true ])]
private bool $actif = true;
#[ORM\OneToOne(mappedBy: 'page', cascade: ['persist', 'remove'])]
private ?Article $article = null;
#[ORM\ManyToOne(inversedBy: 'pages')]
#[ORM\JoinColumn(name: "menu", referencedColumnName: "id")]
private ?Menu $menu = null;
public function getId(): ?int
{
return $this->id;
}
public function getNom(): ?string
{
return $this->nom;
}
public function setNom(string $nom): static
{
$this->nom = $nom;
return $this;
}
public function getUrl(): ?string
{
return $this->url;
}
public function setUrl(string $url): static
{
$parsedUrl = $url;
if (!empty($url)) {
$parsedUrl = $this->urlFromString($url);
}
$this->url = $parsedUrl;
return $this;
}
public function getMetas(): ?string
{
return $this->metas;
}
public function setMetas(?string $metas): static
{
$this->metas = $metas;
return $this;
}
public function isActif(): ?bool
{
return $this->actif;
}
public function setActif(bool $actif): static
{
$this->actif = $actif;
return $this;
}
public function getArticle(): ?Article
{
return $this->article;
}
public function setArticle(?Article $article): static
{
// unset the owning side of the relation if necessary
if ($article === null && $this->article !== null) {
$this->article->setPage(null);
}
// set the owning side of the relation if necessary
if ($article !== null && $article->getPage() !== $this) {
$article->setPage($this);
}
$this->article = $article;
return $this;
}
public function getMenu(): ?Menu
{
return $this->menu;
}
public function setMenu(?Menu $menu): static
{
$this->menu = $menu;
return $this;
}
}