public function searchJournalUser($searchQuery, Journal $journal, $limit, $roles = [])
{
$query = $this->createQueryBuilder('u')->select('PARTIAL u.{id,username,email,firstName,lastName}')->join('u.journalUsers', 'ju')->andWhere('ju.journal = :journal')->andWhere('u.username LIKE :query OR u.email LIKE :query')->andWhere('u.enabled = :enabled')->setParameter('journal', $journal)->setParameter('query', '%' . $searchQuery . '%')->setParameter('enabled', true)->setMaxResults($limit);
if (!empty($roles)) {
$query->join('ju.roles', 'jur')->andWhere('jur.role IN (:roles)')->setParameter('roles', $roles);
}
return $query->getQuery()->getResult();
}