Yii分页用法实例详解

建站知识 2025-04-06 04:30www.168986.cn长沙网站建设

这篇文章将带你领略Yii框架中的分页技巧,通过实例演示了几种常见的分页方法及其特点。对于正在学习Yii框架的朋友来说,这无疑是一篇极具参考价值的文章。

让我们来看看第一种分页方式——使用CListView进行分页。这种方式主要针对对象形式的数据进行分页。

在Controller中,你可以按照以下方式设置分页:

```php

public function actionAjax() {

$criteria = new CDbCriteria();

$criteria->condition = 'user_id = 1';

$dataProvider = new CActiveDataProvider('News', array(

'pagination' => array(

'pageSize' => Yii::app()->params['pagesize'],

'pageVar' => Yii::app()->params['pagevar'],

),

'criteria' => $criteria,

));

$this->render('view', array('dataProvider' => $dataProvider));

}

```

而在View中,你可以使用以下代码实现分页:

```php

$this->widget('zii.widgets.CListView', array(

'dataProvider' => $dataProvider, // 数据来源

'itemView' => '_view', // 显示的模板

'id' => Yii::app()->controller->id, // 设置id属性

'itemsTagName' => 'ul', // 设置items的tag名称

'ajaxVar' => '', // 默认值为page或ajax,可以去掉以简化url

'htmlOptions' => array('class' => Yii::app()->controller->id), // 设置html属性

'loadingCssClass' => 'loading', // 设置加载时的css类名,默认为list-view-loading

// 其他配置项可以根据需要进行设置...

));

?>

```

第一种分页方式:使用CLinkPager配置

Controller代码示例:

```php

public function actionIndex() {

$criteria = new CDbCriteria();

$criteria->order = 'news_id DESC';

$criteria->condition = 'user_id = 1';

$count = News::model()->count($criteria);

$pages = new CPagination($count);

$pages->pageSize = 10;

$pages->applyLimit($criteria);

$list = News::model()->findAll($criteria);

$this->render('index', array('list' => $list, 'pages' => $pages));

}

```

View代码示例:

```php

  • news_intro ?>

上一篇:Symfony控制层深入详解 下一篇:没有了

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by