并非所有标识符属性都可以在ResultSetMapping中找到

mlw*_*mos 1 symfony doctrine-orm

我真的不知道我在标题中输入的错误是什么:

这就是我构建查询构建器的方式:

$qb = $this->em->createQueryBuilder()
        ->select('etablissement.numetb AS id')
        ->addSelect("concat('Etablissement ', etablissement.numetb) AS name")
        ->addSelect("etablissement.raisonsoc AS description")
        ->addSelect("etablissement.datcreation AS datcreation")
        ->addSelect("11 AS type")
        ->addSelect("identity(etablissement.statut) AS statut")
        ->from('MyBundle:MyEntity', 'etablissement')
        ->orderBy('datcreation', 'DESC');
Run Code Online (Sandbox Code Playgroud)

我的存储库是未链接到实体的服务(如果可以帮助的话)。

您能解释这个错误是什么意思吗?以及如何解决呢?

谢谢

szm*_*tas 9

对我来说,解决方案是将select方法更改为addSelect,即:

$this->em->createQueryBuilder()->select('e.id')
Run Code Online (Sandbox Code Playgroud)

$this->em->createQueryBuilder()->addSelect('e.id')
Run Code Online (Sandbox Code Playgroud)


小智 5

对我来说,解决方案是将分页器的输出步进器设置为false。

$paginator->setUseOutputWalkers(false);
Run Code Online (Sandbox Code Playgroud)


mlw*_*mos 3

我找到了答案以及如何编写查询生成器才能使其工作:

这样做可以使错误消失:

$qb = $this->em->createQueryBuilder()
    **->select('etablissement')
    ->addSelect('etablissement.numetb AS id')**
    ->addSelect("concat('Etablissement ', etablissement.numetb) AS name")
    ->addSelect("etablissement.raisonsoc AS description")
    ->addSelect("etablissement.datcreation AS datcreation")
    ->addSelect("11 AS type")
    ->addSelect("identity(etablissement.statut) AS statut")
    ->from('MyBundle:MyEntity', 'etablissement')
    ->orderBy('datcreation', 'DESC');
Run Code Online (Sandbox Code Playgroud)

  • 对于看不到它的任何人,“执行此操作”除了选择其属性之外还选择整个实体。 (4认同)