次のようなコードがあります。
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery("SELECT p FROM AcmeBlogBundle:Publish p
ORDER BY p.update_date DESC");
$query->setFirstResult(($page-1)*$ads_on_page);
$query->setMaxResults($ads_on_page);
$posts = $query->getResult();
今、クエリの行の総数を取得しようとしています (setMeaResult コースには依存しません)。count() 関数を使用しようとしましたが、機能しません...
それで私はそうしましたが、うまくいきSELECT p, count(p.id) as p_count FROM AcmeBlogBundle:Publish p ORDER BY update_date DESC
ましたが、今は1行しかないことがわかります[1行count()
しか返さないからだと思います]。そこで、次のように 2 つのクエリを実行しました。
$em = $this->getDoctrine()->getEntityManager();
$query = $em->createQuery("SELECT p FROM AcmeBlogBundle:Publish p
ORDER BY p.update_date DESC");
$query->setFirstResult(($page-1)*$posts_on_page);
$query->setMaxResults($posts_on_page);
$count_query = $em->createQuery("SELECT COUNT(p.id) AS p_count FROM AcmeBlogBundle:Publish p
ORDER BY p.update_date DESC");
$posts = $query->getResult();
$count = $count_query->getResult();
それはうまくいきますが、それが正しい方法であるか知りたいですか?