'\d+'], normalizationContext: ['groups' => ['customer:read']], ), new GetCollection( normalizationContext: ['groups' => ['customer:read']], ), ], security: "is_granted('ROLE_USER')", )] class Customer { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] #[Groups(['shipment:read', 'customer:read'])] private ?int $id = null; #[ORM\Column(length: 255)] #[Groups(['customer:read', 'shipment:read'])] private ?string $label = null; #[ORM\Column(length: 255)] #[Groups(['customer:read', 'shipment:read'])] private ?string $code = null; /** * @var Collection */ #[ORM\ManyToMany(targetEntity: Address::class, inversedBy: 'customers')] #[ORM\JoinTable(name: 'customer_address')] #[Groups(['customer:read'])] #[ApiProperty(readableLink: true)] private Collection $addresses; public function __construct() { $this->addresses = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getLabel(): ?string { return $this->label; } public function setLabel(?string $label): void { $this->label = $label; } public function getCode(): ?string { return $this->code; } public function setCode(?string $code): void { $this->code = $code; } public function getAddresses(): Collection { return $this->addresses; } public function setAddresses(Collection $addresses): void { $this->addresses = $addresses; } }