【发布时间】:2019-11-02 07:51:27
【问题描述】:
我正在使用带有 EasyAdmin 的 Symfony 4,我需要进行一个选择查询来检索所有用户,但我希望选择连接的用户作为第一个结果。
我完全不知道该怎么做。我在想也许在同一个查询中进行多项选择?但我什至不知道该怎么做。
到目前为止,我有这个:
$repo = $this->getDoctrine()->getRepository(User::class);
$authUser = $this->getUser();
$queryBuilder = $repo->createQueryBuilder('u');
return $queryBuilder;
// 学说 createQueryBuilder 看起来像这样
public function createQueryBuilder($alias, $indexBy = null)
{
return $this->_em->createQueryBuilder()->select($alias)->from($this->_entityName, $alias, $indexBy);
}
编辑:我必须返回 queryBuilder 对象,而不是结果集,这就是为什么它很棘手。
【问题讨论】:
-
看看这个stackoverflow.com/questions/34615027/… 使用 CASE 或 UNION。
-
您的数据库中是否有一个属性表示某人是否已连接?如果是这样,您可以为您的查询构建器添加一个“order by”选项。
-
@ehymel 我需要将经过身份验证的用户的电子邮件与数据库中拥有此电子邮件的用户进行比较
-
在这种情况下,您将无法仅通过 sql/doctrine 获得答案。您必须在控制器中进行自定义排序后检索,可能使用 php 的 usort。
标签: php symfony doctrine-orm