src/Entity/StudioContent.php line 53
<?phpnamespace App\Entity;use ApiPlatform\Doctrine\Orm\Filter\OrderFilter;use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;use ApiPlatform\Metadata\ApiFilter;use ApiPlatform\Metadata\ApiResource;use ApiPlatform\Metadata\Get;use ApiPlatform\Metadata\GetCollection;use ApiPlatform\Serializer\Filter\PropertyFilter;use App\Repository\StudioContentRepository;use DateTimeImmutable;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Doctrine\ORM\Mapping\OrderBy;use Symfony\Component\Serializer\Annotation\Groups;#[ORM\Entity(repositoryClass: StudioContentRepository::class)]/*#[ApiFilter(PropertyFilter::class)]#[ApiResource(shortName: 'Studio',description: 'Studio API',operations: [new Get(uriTemplate: '/content/{id}'),//new Patch(uriTemplate: '/media/{id}'),new GetCollection(uriTemplate: '/content', paginationEnabled: false),],formats: ['jsonld','json','jsonhal','csv' => 'text/csv',],normalizationContext: ['groups' => ['content:read'],],denormalizationContext: ['groups' => ['content:write'],],// paginationItemsPerPage: 10,),ApiFilter(OrderFilter::class,properties: ['position',],),]*/class StudioContent{#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]#[Groups(['studio:read','content:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]private ?int $id = null;#[ORM\Column(type: Types::TEXT, nullable: true)]#[Groups(['studio:read','content:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]private ?string $content = null;#[ORM\Column(type: Types::TEXT, nullable: true)]#[Groups(['studio:read','content:read'])]#[ApiFilter(SearchFilter::class, strategy: 'exact')]private ?string $impressum = null;#[ORM\OneToOne(mappedBy: 'studioContent', targetEntity: Studio::class)]protected Studio $studio;#[ORM\Column]private ?DateTimeImmutable $createdAt = null;#[ORM\Column(nullable: true)]#[Groups(['studio:read','content:read'])]private array $customFields = [];// #[ORM\OneToMany(mappedBy: 'studioContent', targetEntity: Mediathek::class, cascade: ["persist"], orphanRemoval: true)]// public Collection $gallery;public function __construct(){$this->customFields = [];$this->createdAt = new DateTimeImmutable();// $this->gallery = new ArrayCollection();}public function getId(): ?int{return $this->id;}public function getContent(): ?string{return $this->content;}public function setContent(?string $content): self{$this->content = $content;return $this;}public function getImpressum(): ?string{return $this->impressum;}public function setImpressum(?string $impressum): self{$this->impressum = $impressum;return $this;}public function getCreatedAt(): ?DateTimeImmutable{return $this->createdAt;}public function setCreatedAt(DateTimeImmutable $createdAt): self{$this->createdAt = $createdAt;return $this;}public function getStudio(): ?Studio{return $this->studio;}public function getCustomFields(): array{return $this->customFields;}public function setCustomFields(?array $customFields): self{$this->customFields = $customFields;return $this;}public function setStudio(?Studio $studio): self{// unset the owning side of the relation if necessaryif ($studio === null && $this->studio !== null) {$this->studio->setStudioContent(null);}// set the owning side of the relation if necessaryif ($studio !== null && $studio->getStudioContent() !== $this) {$studio->setStudioContent($this);}$this->studio = $studio;return $this;}}