【问题标题】:"Semantical Error" line 0, col 14 near 'User u WHERE': Error: Class 'User' is not defined“语义错误”第 0 行,第 14 列“用户 u WHERE”附近:错误:未定义“用户”类
【发布时间】: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\UserEntityUserEntity::class
  • @craigh,是的,确实将from('User', 'u') 更改为from('App\Entity\User', 'u') 开始“工作”。我在获取用户角色时仍然遇到错误,但这是另一个问题......我猜你可以发布回复。谢谢。

标签: doctrine-orm


【解决方案1】:

您必须为实体使用 FqCN。

例如from('App\Entity\User', 'u')

【讨论】:

    猜你喜欢
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 2019-08-09
    • 2021-01-03
    • 1970-01-01
    • 2017-10-20
    • 2023-02-13
    相关资源
    最近更新 更多