Как в symfony 3.4 вытащить пользователей у которых нет конкретных ролей?

Symfony 3.4 предоставляет мощные инструменты для работы с авторизацией и ролями пользователей. Чтобы вытащить пользователей, у которых нет конкретной роли, можно воспользоваться Doctrine Query Builder и его возможностями для фильтрации результатов.

Первым шагом необходимо получить экземпляр UserRepository, который отвечает за доступ к данным пользователей. Обычно этот класс наследуется от EntityRepository или от DoctrineORMEntityRepository. Примерно так:

use AppBundleRepositoryUserRepository;

// ...

public function myAction(UserRepository $userRepository)
{
    // ...
}

Затем вы можете использовать Query Builder для создания запроса, который вернет пользователей без определенной роли.
Query Builder предоставляет множество методов для построения запросов, включая условия WHERE. В вашем случае, вы можете использовать метод andWhere для добавления условия фильтрации.

Вот пример, как это может выглядеть:

$usersWithoutRole = $userRepository->createQueryBuilder('u')
    ->leftJoin('u.roles', 'r')
    ->andWhere('r.name != :role')
    ->setParameter('role', 'ROLE_NAME')
    ->getQuery()
    ->getResult();

В этом примере мы создаем запрос Builder, указывая букву "u" как псевдоним для таблицы пользователей и "r" для таблицы ролей. Затем мы делаем внешнее объединение (leftJoin) таблицы roles для доступа к ролям пользователей.

Метод andWhere добавляет условие фильтрации, в котором мы указываем, что r.name не равно конкретной роли. Здесь :role - это параметр запроса, который мы устанавливаем с помощью метода setParameter. Затем мы вызываем getQuery() для получения объекта Doctrine Query и выполняем запрос с помощью метода getResult.

В результате, переменная $usersWithoutRole будет содержать массив пользователей, у которых нет определенной роли.

Важно отметить, что в этом примере название роли ("ROLE_NAME") нужно заменить на конкретное значение.
Кроме того, для использования Query Builder, необходимо иметь соответствующее подключение к базе данных и настройки сущностей в файле конфигурации Symfony.