Хорошо использовать сериализованные строки в SQL никогда не является хорошей идеей, не знаю, почему такой популярный пакет будет делать это, но это то, что есть.
Ваш запрос в письменном виде проверяет пользователя с определенным идентификатором и ролью. но вы никогда не предоставляете идентификатор или роль !.
Я не думаю, что вы хотите сделать запрос по id, поэтому правильный запрос должен выглядеть примерно так:
public function listFitters(Request $request)
{
// Get Entity manager and repository
$em= $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
//set required role
$role = 'ROLE_FITTER';
$qb->select('u')
->from('userBundle:User', 'u')
->where('u.roles LIKE :roles')
->setParameter('roles', '%"' . $role . '"%');
$user = $qb->getQuery()->getResult();
// Serialize into an array the data that we need, in this case only name and id
$responseArray = array();
foreach ($users as $user) {
$responseArray[] = array(
"id" => $user->getId(),
"name" => $user->getName()
);
}
// Return array for dropdown
return new JsonResponse($responseArray);
}
Вероятно, вам следует выбрать только те поля, которые вы хотите (id, name), и избегать цикла построения массива, но я не особенно знаком с symfony / doctrine, поэтому не уверен в правильном синтаксисе