CActiveDataProvider から供給される単純な CGridView があります。現時点では、これがどのくらいの期間発生しているかはわかりませんが、ページネーションが有効になっているビューにすべてのデータ項目が表示されているわけではありません。
ヘッダーに「9 件中 1 ~ 7 件を表示しています」と表示されていますが、ページを増やすためのボタンがありません。データ プロバイダーの pagenation プロパティの pageSize を小さい値に設定すると、最終的にはページング ボタンが表示されますが、最初のページに表示される項目は 2 ページ目よりも少ないようです。たとえば、CActiveDataProvider の pageSize を 3 に設定すると、予想どおり 3,3,1 ではなく 2,2,3 (各ページの項目) が得られます。
pageSize を 9 から 11 までの範囲に設定すると、1 ページしか表示されず、すべての項目が表示されないため、表示できない項目があります (pageSize を 9 に設定すると、「1-6 of 9」)。
$criteria=new CDbCriteria;
$criteria->with = array('registrations');
$criteria->addCondition('registrations.id IS NOT NULL');
$criteria->addCondition('registered = false');
$criteria->together = true;
$dataProvider = new CActiveDataProvider('Skier', array('criteria'=>$criteria));
$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array('name'=>'fullname', 'header'=>'Name'),
array(
'name'=>'programs_names',
'header'=>'Programs',
'value'=>'$data->programs_names',
),
<More items here>
)
));
ページネーションが不安定になる原因を知っている人はいますか?
編集: また、CActiveDataProvider を CArrayDataProvider に変更すると正しく機能し、9 件中 9 件の結果が得られます。データセットが小さいため、これで今のところは問題ありませんが、何が問題なのかを突き止めたいと思います。
$dataProvider = new CArrayDataProvider(Skier::model()->findAll($criteria));