*/ class MovieRoleRepository extends ServiceEntityRepository { public function __construct(ManagerRegistry $registry) { parent::__construct($registry, MovieRole::class); } /** * @param list $excludeMovieRoleIds MovieRole IDs to exclude * @return MovieRole|null */ public function findOneRandomByActor(int $actorId, array $excludeMovieRoleIds = []): ?MovieRole { $qb = $this->createQueryBuilder('mr') ->andWhere('mr.actor = :actorId') ->setParameter('actorId', $actorId); if (!empty($excludeMovieRoleIds)) { $qb->andWhere('mr.id NOT IN (:excludeIds)') ->setParameter('excludeIds', $excludeMovieRoleIds); } return $qb ->orderBy('RANDOM()') ->setMaxResults(1) ->getQuery() ->getOneOrNullResult(); } }