0

Clistview のページネーションが正しく機能していません。あらゆることを試しましたが、まだ成功していません。モデル関数は次のとおりです。

public function getallone()
{
    $criteria = new CDbCriteria;
    $criteria->select   =   "t.id"; 
    $criteria->condition = "t.featured=1 AND t.status = 1";
            return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
                'pagination' => array('pageSize' => 25),

    ));
}

まだ 1 ページあたり 10 アイテムしか取得できませんが、25 が必要です。2 アイテムを試してみましたが、それも機能しません。何が問題なのですか?見つかりませんでした。

そして、これは私のビューコードです:

<?php $this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$model->getallone(),
        'itemView'=>'_allone',

        'enablePagination' => true,
        )); ?>
4

2 に答える 2

1

あなたはより良いページネーションオプションのためにこれを試してみるべきです

$condition='type=:type';
$dataArray[':type']=$type;
$dataProvider=new CActiveDataProvider('modelname', array(
        'criteria'=>array(
         'select'=>'*',
            'condition'=>$condition,
            'params'=>$dataArray,
            'order'=>'id DESC',
            'offset'=>($page-1)*$limit,
            'limit'=>$limit,
         ),
        'pagination'=>array(
            'pageSize'=>$limit,

    ),
    ));

  $totalActivity= $dataProvider->getTotalItemCount();

参照用のhttp://www.yiiframework.com/doc/api/1.1/CActiveDataProvider

于 2013-03-22T07:03:16.790 に答える
1

試して使用してくださいCArrayDataProvider

これがその方法です:

public function actionIndex() {
        $command = Yii::app()->db->createCommand("
            SELECT u.id as u_id, u.link as u_link, u.title as u_title, u.description as u_description, u.public as u_public, u.created as u_created, u.status as u_status, w.id as w_id, w.domain as w_domain, w.status as w_status
            from url as u
            left join website as w
                on w.id = u.website_id
            where u.title!='null' and u.status = 1 and w.status = 1 and u.public = 1;
            ");
        $news = $command->queryAll();
        $dataProvider = new CArrayDataProvider($news, array(
                    'id' => 'user',
                    'keyField' => 'u_id',
                    'sort' => array(
                        'defaultOrder' => 'u_id desc',
                    ),
                    'pagination' => array(
                        'pageSize' => 10,
                    ),
                ));
        $model_website = Website::model()->findAllByAttributes(array('status' => 1), array('limit' => 30, 'order' => 'id desc'));
        $this->render('index', array(
            'model_website' => $model_website,
            'dataProvider' => $dataProvider,
        ));
    }

およびclistview:

    $this->widget('zii.widgets.CListView', array(
        'dataProvider' => $dataProvider,
        'template' => "{summary}\n{pager}\n{items}\n{summary}\n{pager}",
        'itemView' => '_index',
        'pager' => array(
            'maxButtonCount' => 10,
        ),
            )
    );
于 2013-03-22T06:35:59.853 に答える