Yii ClistView分页不工作
我的Clistview分页工作不正常。我尝试了所有方法,但仍然没有成功。以下是我的模型函数:Yii ClistView分页不工作,yii,pagination,Yii,Pagination,我的Clistview分页工作不正常。我尝试了所有方法,但仍然没有成功。以下是我的模型函数: public function getallone() { $criteria = new CDbCriteria; $criteria->select = "t.id"; $criteria->condition = "t.featured=1 AND t.status = 1"; return new CActiveDataPro
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),
));
}
我仍然得到每页只有10个项目,但我想要25个。我尝试了2个项目,但它也不工作。怎么了?我没找到
这是我的视图代码:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$model->getallone(),
'itemView'=>'_allone',
'enablePagination' => true,
)); ?>
尝试使用
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,
),
)
);
您应该尝试此方法以获得更好的分页选项
$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();
仅供参考感谢您的回复,但这会增加代码的复杂性,这不是我之前所说的答案,我已经尝试了所有(包括carray、csql)数据提供程序。哪里声明了
$limit
限制?您可以根据需要设置限制,我只是添加了分页结构。