如何在orm symfony中获取所有内容?



我正在尝试获取所有用户查询列表

$userList = [1,5,2,3,1];
$users = $this->getEntityManager()->getRepository('AppBundle:User')->findBy(['id' => $userList]);

此代码有效,但它与用户不同。它像这样显示

---------------
userid  |  name
---------------
1       |  we
5       |  ace
2       |  red
3       |  ran

但我想像这样显示

---------------
userid  |  name
---------------
1       |  we
5       |  ace
2       |  red
3       |  ran
1       |  we

我如何在ORM中做到这一点?

更新

我试试这个。

public function getUsers($id)
{
$query = $this->createQueryBuilder('u')
->addSelect('u')
->distinct(false)
->where('u.id IN (:ulist)')
->setParameter('ulist', $id)
->getQuery();
$users = $query->getResult(Query::HYDRATE_ARRAY);
return $users;
}

但它显示相同

您可以尝试使用查询生成器。

$repository = $this->getDoctrine()->getRepository('AppBundle:User');
$query = $repository->createQueryBuilder('u')
->select('u')
->where('u.id IN (:ulist)')
->setParameter('ulist', $userList)
->getQuery();
$users = $query->getResult();

如果这仍然能给你带来不同的结果,试试这个

$repository = $this->getDoctrine()->getRepository('AppBundle:User');
$query = $repository->createQueryBuilder('u')
->select('u')
->distinct(false)
->where('u.id IN (:ulist)')
->setParameter('ulist', $userList)
->getQuery();
$users = $query->getResult();

否则,您必须创建一个对象数组。您可以通过将最后一行替换为

$users = $query->getResult(Query:HYDRATE_ARRAY);

现在你有一个包含所有记录的多维数组,你可以根据需要显示它们,就像$users[0]['username']一样获取它们。

相关内容

  • 没有找到相关文章

最新更新