2
を経由して制限を使用しているとき、私は教義に新たなんだ、とCriteria
と制限を使用しているとき、私はちょうどEntityRepository::matching
に(setMaxResults
機能を経由して)結果の総数を取得する方法を見つけることができませんでし総取得方法。ドクトリン2 - リポジトリ
public function getAll($query = null) {
if ($query instanceof Criteria) {
$users = $this->em->getRepository('App\Entities\User')->matching($query)->toArray();
} else {
$users = $this->em->getRepository('App\Entities\User')->findAll();
}
return $users;
}
は今言うことができます:私のリポジトリ(ないEntityRepositoryのextend
)、私は(私はこれが、教義を学ぶためだけに使用される最適なコードではありません知っている)以下の使用していて
$query = Criteria::create();
$query->where(Criteria::expr()->contains('username', 'ron'));
$query->setMaxResults(10);
そして、それに一致する10人の以上のユーザーが実際にあります。基準がそうのように定義されています。
基準に合致するユーザーの総数を取得するにはどうすればよいですか?
私は、単一のクエリでそれを実行しようとしましたが、私はDoctrineは(制限なし)最初のクエリとしてないことCOUNT(*)は大きな「オーバーヘッド」影響を与えないように十分に速いと思います。ありがとう:) –