首页 > 开发 > PHP > 正文

Yii框架分页实现方法详解

2024-05-04 22:47:34
字体:
来源:转载
供稿:网友

本文实例讲述了Yii框架分页实现方法。分享给大家供大家参考,具体如下:

下家公司用的框架是yii,这几天看了下相关教程,今儿把分页教程写下,最后把tp的分页也给整合进了yii,因为个人觉得yii分页没有tp用的顺手。

首页,在models目录里创建个Auth.php的模型文件,里面写入

class Auth extends CActiveRecord {  public static function model($className = __CLASS__) {    return parent::model($className);  }  public function tableName() {    return '{{auth}}';  }}

接着在controllers目录里创建IndexController.php的控制文件,里面写入

class IndexController extends Controller {  public function actionList() {    $criteria = new CDbCriteria();    $criteria->order = 'a_id desc';    $count = Auth::model()->count($criteria);    $page = new CPagination($count);    $page->pageSize = 10;    $page->applyLimit($criteria);    $auth = Auth::model()->findAll($criteria);    $this->renderPartial('auth', array('page' => $page, 'list' => $auth));  }  public function actionList1() {    $p = isset($_GET['page']) ? $_GET['page'] : 0;    $criteria = new CDbCriteria();    $criteria->select = "a_id,a_nickname";    $criteria->condition='';    $criteria->limit = 10;    $criteria->offset = $p == 0 ? 0 : (($p-1)*10);    $criteria->order = 'a_id desc';    $auth = Auth::model()->findAll($criteria);    $count = Auth::model()->count($criteria);    $page = new CPagination($count);    $page->pageSize = 10;    $page->applyLimit($criteria);    $this->renderPartial('auth', array('page' => $page, 'list' => $auth));  }}

其中actionList和actionList1是$criteria的两种写法

最后在views目录里添加index目录,并在index目录内添加auth.php文件,里面写入

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><div class="blogList"><ul>  <?php foreach($list as $key=>$value){ ?>  <li>    <a><?php echo $value['a_nickname'];?></a>  </li>  <?php } ?></ul></div><div id="page"><?php  $this->widget('CLinkPager',array(    'firstPageLabel'=>'首页',    'lastPageLabel'=>'末页',    'prevPageLabel'=>'上一页',    'nextPageLabel'=>'下一页',    'pages'=>$page,    'maxButtonCount'=>13,    )  );?></div>

上面是yii自带的写法,这里引入tp的分页类,做个简单的改动,步骤如下

首先,把tp的AjaxPage.class.php和Page.class.php移动到yii的项目目录下的 protected/components下面,并且把文件名称分布改为AjaxPage.php和Page.php,分别进入两个文件,把里面的C方法去掉,也就是这一句

$this->varPage = C('VAR_PAGE') ? C('VAR_PAGE') : 'p' ;            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表