【发布时间】:2020-05-27 14:23:40
【问题描述】:
我有一个 Symfony 5 项目,它具有默认身份验证和 User 实体。我正在阅读 Doctrine documentation 以使用 $em->createQueryBuilder() 函数,但出现此错误:
[语义错误] 第 0 行,第 14 列“用户 u WHERE”附近:错误:未定义“用户”类。
我只需要查询一些具有特定角色的用户,所以我在控制器中编写了以下代码:
$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 我应该将 Bundle 名称添加到 from('User', 'u') 但我不确定这个版本。
问题 2:这段代码是否最适合这种查询?还是我把事情复杂化了?
【问题讨论】:
-
->orderBy('ASC')看起来很奇怪。那里应该有一个字段,对吧? -
已编辑,我的错。但我想这不是问题。
-
我猜你需要 FqCN - 可能类似于
Acme\Namespace\Entity\UserEntity或UserEntity::class -
@craigh,是的,确实将
from('User', 'u')更改为from('App\Entity\User', 'u')开始“工作”。我在获取用户角色时仍然遇到错误,但这是另一个问题......我猜你可以发布回复。谢谢。
标签: doctrine-orm