feat: add findOneRandomByActor to MovieRoleRepository
This commit is contained in:
@@ -16,28 +16,25 @@ class MovieRoleRepository extends ServiceEntityRepository
|
||||
parent::__construct($registry, MovieRole::class);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return MovieRole[] Returns an array of MovieRole objects
|
||||
// */
|
||||
// public function findByExampleField($value): array
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->orderBy('m.id', 'ASC')
|
||||
// ->setMaxResults(10)
|
||||
// ->getQuery()
|
||||
// ->getResult()
|
||||
// ;
|
||||
// }
|
||||
/**
|
||||
* @param list<int> $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);
|
||||
|
||||
// public function findOneBySomeField($value): ?MovieRole
|
||||
// {
|
||||
// return $this->createQueryBuilder('m')
|
||||
// ->andWhere('m.exampleField = :val')
|
||||
// ->setParameter('val', $value)
|
||||
// ->getQuery()
|
||||
// ->getOneOrNullResult()
|
||||
// ;
|
||||
// }
|
||||
if (!empty($excludeMovieRoleIds)) {
|
||||
$qb->andWhere('mr.id NOT IN (:excludeIds)')
|
||||
->setParameter('excludeIds', $excludeMovieRoleIds);
|
||||
}
|
||||
|
||||
return $qb
|
||||
->orderBy('RANDOM()')
|
||||
->setMaxResults(1)
|
||||
->getQuery()
|
||||
->getOneOrNullResult();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user