7

我目前正在研究 SF2 中的一项服务,该服务使用 QueryBuilder 查询数据库,该服务使用类变量集,该类变量在该服务的构造函数中具有特定于存储库的 QueryBuilder。这意味着我想尽可能多地使用这个集合 QueryBuilder 来获得更整洁的代码和使用它的干净感觉。

我想避免在 EntityManager 上创建查询,而是仅使用此预定义的 Querybuilder 进行查询。

我正在寻找看起来/工作如下的东西:

$query = $this->fooRepository->createQueryBuilder('f')->select('*');
return $query->getResult(Query::HYDRATE_ARRAY);

据我所知,以上将(如果有效)返回数据库中的所有 foo ..

如果您认为我很愚蠢并且应该对预定义的 QueryBuilders 做一些不同的事情,或者只是使用:

createQuery()

方法,因为它根本不是好的做法或不可能,请不要犹豫告诉我。

谢谢!

4

1 回答 1

9

尝试:

$qb = $this->fooRepository->createQueryBuilder('foo');
return $qb->getQuery()->getResult(Query::HYDRATE_ARRAY);

不需要选择(*)。由于没有添加 where 子句,因此将选择所有 foo 项目。

于 2013-12-12T16:19:58.793 回答