241 lines
4.5 KiB
PHP
241 lines
4.5 KiB
PHP
<?php
|
|
|
|
namespace App\Entity\Blog;
|
|
|
|
use App\Doctrine\Timestampable;
|
|
use App\Entity\EntityInterface;
|
|
use App\Entity\User;
|
|
use App\Repository\Blog\PostRepository;
|
|
use Doctrine\Common\Collections\ArrayCollection;
|
|
use Doctrine\Common\Collections\Collection;
|
|
use Doctrine\ORM\Mapping as ORM;
|
|
|
|
/**
|
|
* @ORM\Entity(repositoryClass=PostRepository::class)
|
|
* @ORM\HasLifecycleCallbacks
|
|
*/
|
|
class Post implements EntityInterface
|
|
{
|
|
use Timestampable;
|
|
/**
|
|
* @ORM\Id
|
|
* @ORM\GeneratedValue
|
|
* @ORM\Column(type="integer")
|
|
*/
|
|
private $id;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", length=255)
|
|
*/
|
|
private $title;
|
|
|
|
/**
|
|
* @ORM\Column(type="text", nullable=true)
|
|
*/
|
|
private $subTitle;
|
|
|
|
/**
|
|
* @ORM\Column(type="text", nullable=true)
|
|
*/
|
|
private $content;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", length=255, nullable=true)
|
|
*/
|
|
private $metaDescription;
|
|
|
|
/**
|
|
* @ORM\Column(type="integer")
|
|
*/
|
|
private $status;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", length=255, nullable=true)
|
|
*/
|
|
private $image;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", length=255, nullable=true)
|
|
*/
|
|
private $slug;
|
|
|
|
/**
|
|
* @ORM\Column(type="datetime", nullable=true)
|
|
*/
|
|
private $publishedAt;
|
|
|
|
/**
|
|
* @ORM\Column(type="string", length=255, nullable=true)
|
|
*/
|
|
private $imageCaption;
|
|
|
|
/**
|
|
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="posts")
|
|
* @ORM\JoinColumn(nullable=true, onDelete="SET NULL")
|
|
*/
|
|
private $author;
|
|
|
|
/**
|
|
* @ORM\ManyToMany(targetEntity=Category::class, inversedBy="posts")
|
|
*/
|
|
private $categories;
|
|
|
|
public function __construct()
|
|
{
|
|
$this->categories = new ArrayCollection();
|
|
}
|
|
|
|
public function getId(): ?int
|
|
{
|
|
return $this->id;
|
|
}
|
|
|
|
public function getTitle(): ?string
|
|
{
|
|
return $this->title;
|
|
}
|
|
|
|
public function setTitle(string $title): self
|
|
{
|
|
$this->title = $title;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getSubTitle(): ?string
|
|
{
|
|
return $this->subTitle;
|
|
}
|
|
|
|
public function setSubTitle(?string $subTitle): self
|
|
{
|
|
$this->subTitle = $subTitle;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getContent(): ?string
|
|
{
|
|
return $this->content;
|
|
}
|
|
|
|
public function setContent(?string $content): self
|
|
{
|
|
$this->content = $content;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getMetaDescription(): ?string
|
|
{
|
|
return $this->metaDescription;
|
|
}
|
|
|
|
public function setMetaDescription(?string $metaDescription): self
|
|
{
|
|
$this->metaDescription = $metaDescription;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getStatus(): ?int
|
|
{
|
|
return $this->status;
|
|
}
|
|
|
|
public function setStatus(int $status): self
|
|
{
|
|
$this->status = $status;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getImage(): ?string
|
|
{
|
|
return $this->image;
|
|
}
|
|
|
|
public function setImage(?string $image, bool $force = false): self
|
|
{
|
|
if (false === $force && null === $image) {
|
|
return $this;
|
|
}
|
|
|
|
$this->image = $image;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getSlug(): ?string
|
|
{
|
|
return $this->slug;
|
|
}
|
|
|
|
public function setSlug(?string $slug): self
|
|
{
|
|
$this->slug = $slug;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getPublishedAt(): ?\DateTimeInterface
|
|
{
|
|
return $this->publishedAt;
|
|
}
|
|
|
|
public function setPublishedAt(?\DateTimeInterface $publishedAt): self
|
|
{
|
|
$this->publishedAt = $publishedAt;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getImageCaption(): ?string
|
|
{
|
|
return $this->imageCaption;
|
|
}
|
|
|
|
public function setImageCaption(?string $imageCaption): self
|
|
{
|
|
$this->imageCaption = $imageCaption;
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function getAuthor(): ?User
|
|
{
|
|
return $this->author;
|
|
}
|
|
|
|
public function setAuthor(?User $author): self
|
|
{
|
|
$this->author = $author;
|
|
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* @return Collection|Category[]
|
|
*/
|
|
public function getCategories(): Collection
|
|
{
|
|
return $this->categories;
|
|
}
|
|
|
|
public function addCategory(Category $category): self
|
|
{
|
|
if (!$this->categories->contains($category)) {
|
|
$this->categories[] = $category;
|
|
}
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function removeCategory(Category $category): self
|
|
{
|
|
$this->categories->removeElement($category);
|
|
|
|
return $this;
|
|
}
|
|
}
|