«Семантическая ошибка», строка 0, столбец 14 рядом с «User u WHERE»: Ошибка: класс «User» не определен - PullRequest
0 голосов
/ 26 мая 2020

У меня есть проект Symfony 5 с аутентификацией по умолчанию и сущностью User. Я читал Doctrine документацию , чтобы использовать функцию $em->createQueryBuilder(), но получил эту ошибку:

[Семантическая ошибка] строка 0, столбец 14 рядом с 'User u WHERE ': Ошибка: класс' Пользователь 'не определен.

Мне просто нужно запросить некоторых пользователей с определенной ролью c, поэтому я написал следующий код в контроллере:

$em = $this->getDoctrine()->getManager();
$qb = $em->createQueryBuilder();
$category_users = $qb->select(array('u'))
    ->from('User', 'u')
    ->where('u.category = ' . $category->getId())
    ->setParameter('roles', '%"ROLE_CUSTOM"%')
    ->orderBy('u.name', 'ASC')
    ->getQuery()
    ->getResult();

Я знаю, что ошибка не связана с написанием самого запроса, и я предполагаю, что здесь может быть два вопроса, но на всякий случай ...

Вопрос 1: Что я забываю получить это ошибка? Я прочитал в предыдущих версиях Symfony, я должен добавить имя пакета к from('User', 'u'), но я не уверен насчет этой версии.

Вопрос 2: Оптимален ли этот код для такого рода запросов? Или, может быть, я слишком усложняю?

1 Ответ

2 голосов
/ 27 мая 2020

Вы должны использовать FqCN для Entity.

например, from('App\Entity\User', 'u')

...