アーカイブ

2009 年 7 月 のアーカイブ

[symfony]sfPropelPagerのgetNbResultsがおかしい

2009 年 7 月 30 日 コメントはありません

sfPropelPagerはsymfonyのデフォルトORMであるpropelを用いたページャー機能だが、ちょっとおかしなところがあったのでメモ。

getNbResults()は取得した全レコード数を返す関数だが、group byを指定するとおかしくなることが判明。
group byすると何故かgroup byしていない全レコード数がセットされてしまう。

色々調べたところ、原因はsfPropelPager の中でdoCount した時にgroup by の項目をクリアしてからdoCountしているらしい。
参考:http://u2k772.blog95.fc2.com/blog-entry-15.html

ってなわけでここに書いてある通り

  1.  <?php
  2.  $criteria = new Criteria();
  3.  $criteria->setDistinct();
  4.  ・・・
  5.  ・・・
  6.  $criteria->addGroupByColumn(...);
  7.  ?>

としたらきちんと取得できた。

あざっす!!

カテゴリー: symfony タグ:
Get Adobe Flash player