src/Entity/UserInstitution.php line 23
<?phpnamespace App\Entity;use App\Entity\Mapped\Entity;use App\Repository\UserInstitutionRepository;use App\Validator\Constraint as CustomValidator;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;#[ORM\Entity(repositoryClass: UserInstitutionRepository::class)]#[ORM\Table(name: 'user_institution')]#[CustomValidator\UniqueInCollection(message: 'user.uniqueInstitution',fields: ['user', 'institution'],groups: ['admin-action-create', 'admin-action-update'])]class UserInstitution extends Entity{#[ORM\ManyToOne(targetEntity: User::class,cascade: ['persist', 'remove'],inversedBy: 'userInstitution')]#[ORM\JoinColumn(name: 'user')]private ?User $user = null;#[ORM\ManyToOne(targetEntity: Institution::class,cascade: ['persist', 'remove'],inversedBy: 'userInstitution')]#[ORM\JoinColumn(name: 'institution')]#[Assert\NotBlank(groups: ['admin-action-create', 'admin-action-update'])]private ?Institution $institution = null;#[ORM\OneToMany(mappedBy: 'userInstitution',targetEntity: UserInstitutionRole::class,cascade: ['persist', 'remove'],fetch: 'EXTRA_LAZY',orphanRemoval: true)]#[Assert\Count(min: 1,minMessage: 'user.minRoles',groups: ['admin-action-create', 'admin-action-update'])]private ?iterable $roles;public function __construct(){$this->roles = new ArrayCollection();}public function getUser(): ?User{return $this->user;}public function setUser(?User $user): self{$this->user = $user;return $this;}public function getInstitution(): ?Institution{return $this->institution;}public function setInstitution(?Institution $institution): self{$this->institution = $institution;return $this;}public function getRoles(): iterable{return $this->roles;}public function setRoles(iterable $roles): self{$this->roles = $roles;return $this;}public function removeRoles(UserInstitutionRole $userInstitutionRole): void{if (!$this->roles->contains($userInstitutionRole)) {return;}$this->roles->removeElement($userInstitutionRole);$userInstitutionRole->setUserInstitution(null);}public function addRoles(UserInstitutionRole $userInstitutionRole): void{if ($this->roles->contains($userInstitutionRole)) {return;}$this->roles[] = $userInstitutionRole;$userInstitutionRole->setUserInstitution($this);}}