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

时间:2016-03-24 11:25:40

标签: 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');

我的存储库是一个未链接到实体的服务(如果它可以提供帮助)。

你能解释一下这个错误是什么意思吗?以及如何解决它?

谢谢

4 个答案:

答案 0 :(得分:4)

对我而言,解决方案是将paginator的输出助行器设置为false。

$paginator->setUseOutputWalkers(false);

答案 1 :(得分:2)

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

Coefficient for
<function <lambda> at 0x000001A8A62A0378>

$this->em->createQueryBuilder()->select('e.id')

答案 2 :(得分:1)

此错误表示您必须在查询中选择实体的所有标识符。标识符是实体中带有@id注释的字段。

答案 3 :(得分:0)

我找到了答案以及如何编写查询构建器以使其工作:

这样做会使错误消失:

$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');