Symfony 使用本机查询的Doctrine2 ORM

Symfony 使用本机查询的Doctrine2 ORM,symfony,orm,doctrine-orm,Symfony,Orm,Doctrine Orm,我有以下命令: $rsm = new ResultSetMapping(); $query = $this->em->createNativeQuery('SELECT userid FROM prospective_shop WHERE LENGTH(bio) = 0 ORDER BY RAND()', $rsm); //$query->setMaxResults(10); $prospectiveShops = $query

我有以下命令:

 $rsm = new ResultSetMapping();
        $query = $this->em->createNativeQuery('SELECT userid FROM prospective_shop WHERE LENGTH(bio) = 0 ORDER BY RAND()', $rsm);
        //$query->setMaxResults(10);
        $prospectiveShops = $query->getResult();

这里它给了我一个空数组。我复制粘贴了SQL,它工作得非常好。知道为什么吗?

你没有忘记使用:

$rsm->addFieldResult(...);
将查询结果映射到条令对象

编辑:

试着这样做:

 $rsm = new ResultSetMapping();
 $rsm->addEntityResult('my\bundle\Entity\ProsprectiveShop', 's');
 $rsm->addFieldResult('s','userid','userid');
 $query = $this->em->createNativeQuery('SELECT userid FROM prospective_shop s WHERE LENGTH(bio) = 0 ORDER BY RAND()', $rsm);
 $prospectiveShops = $query->getResult();

那么在上面的例子中,我应该添加什么?您是否也更改了SQL查询?“来自未来商店”编辑了回复。。。我的错。。。现在只需将正确的实体放在这里:注意:第2433行的/Users/Aditya/Sites/MySite/vendor/doctrine/orm/lib/doctrine/orm/UnitOfWork.php中的未定义索引:id