は、私は、エンティティストア、所有者とタウンを持っていると私は、カウントすべての店舗所有者は、自分の町で分類したことにしたいです。私は私のコントローラDoctrine QueryBuilderですべての列を選択するには?
$query = $this->getDoctrine()->getRepository('WebBundle:Store')
->createQueryBuilder('s')
->select('t.name, COUNT(s) as counter')
->groupBy('s.town')
->leftJoin('s.owner','o')
->leftJoin('s.town','t')
->where('s.owner = :id')
->orderBy('t.name','ASC')
->setParameter('id', $id)
->getQuery();
$list = $query->getResult();
でこのクエリがにどのような方法があります持っている
ではなく、すべての列を宣言するの町からすべての列を選択しますか? ->select('t.*, COUNT(s) as counter')
のようなものです。私は今必要なものを選択できますが、大きなテーブルの場合は他の方法が必要になります。
私は->select('t, COUNT(s) as counter')
を試しましたが、例外エラーが発生しました。詳細については
は、私の小枝テンプレートで私はこれを表示したい:アドバイスのすべてのための
{% for town in list %}
<span>{{ town.name }}</b> [{{ town.counter }}]</span>
{% endfor %}
感謝を!
Excelent!これはたくさんの助けになります..あなたの答えをありがとう! –
よかった、よろしいですか? – ceadreak
ひどい提案...決してデータベースを忘れないでください。良いクエリーではなく、10レベルのラッパーを使用して、素早くデータベースで作業を行うことができます。そして、あなたのフィルタは、町の名前のためにそれらを比較するためにデータベースがすべての店をフェッチするように要求します。あなたはdoctrineが何をしているのか見たことはないと思う。 –