Symfony2 findBy + indexBy

时间:2016-11-09 10:28:09

标签: symfony doctrine-orm

在查询构建器中,您可以指定应将字段用作数组索引:

$qb = $em->createQueryBuilder();
$qb->select('s');
$qb->from('models\Settings', 's', 's.key');  // here the magic
$result = $qb->getQuery()->getResult();
//here $result[key] is entity 

任何人都知道如何将indexBy(不是DB,但结果数组的索引)添加到findBy方法,或者为存储库创建类似findBy的方法,如:

$clients = $clientRepository->findBy(['id' => $clients], [indexBy=>id]);

OR

$clients = $clientRepository->myFindByWithIndexBy(['id' => $clients], 'id');

我需要一个带过滤条件的方法(在哪里),它应该返回由id

索引的实体

1 个答案:

答案 0 :(得分:-1)

findBy的第二个参数用于排序结果(数据库上下文中的索引是另一回事)。

$repo->findBy(['id'=>$clients], ['id'=>'asc']); // reverse by changing 'asc' to 'desc'