pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Yii框架分頁實現方法詳解

這篇文章主要介紹了Yii框架分頁實現方法,結合實例形式詳細分析了基于Yii框架實現分頁的原理、步驟與相關操作技巧,需要的朋友可以參考下

本文實例講述了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' ;

改為

$this->varPage = 'p' ;

改完之后,這個兩個文件是不需要引入的,因為yii在啟動時會自動加載的。具體的可見protected/config.php/main.php的配置中的

// autoloading model and component classes
  'import'=>array(
    'application.models.*',
    'application.components.*',
  ),

其次,在protected/config.php/目錄里新建一個common.php文件,這個文件就放些項目的公共函數,熟悉tp的朋友應該知道tp也有公共函數文件,很好用,這里借鑒下,yii應該也有吧,目前還沒發現。在該文件寫入

// 根據頁碼獲取列表
function getListByPage($model, $select = '*', $condition = '', $limit = 10, $order = '', $p = '', $ajax = 0) {
  // 初始化參數
  $_GET['p'] = isset($_GET['p']) ? intval($_GET['p']) : 1;
  $limit = intval($limit) > 0 ? intval($limit) : 10;
  if ($p) {
    $_GET['p'] = intval($p) ? intval($p) : 1;
  }
  $criteria = new CDbCriteria();
  $count = $model->count($criteria);
  if ($ajax) {
    $Page = new AjaxPage($count, $limit);
  } else {
    $Page = new Page($count, $limit);
  }
  $result['page'] = trim($Page->show());
  $criteria->select = $select;
  $criteria->condition = $condition;
  $criteria->limit = $Page->listRows;
  $criteria->offset = $Page->firstRow;
  $criteria->order = $order;
  $list = $model->findAll($criteria);
  $result['list'] = $list;
  return $result;
}

這個文件可就要引入了,不然加載不了,可以在項目的入口文件index.php里自行引入,代碼如下

require_once(dirname($config) . '/common.php');

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要為大家詳細介紹了thinkPHP5使用laypage分頁插件實現列表分頁功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
下面小編就為大家帶來一篇利用PHP訪問數據庫_實現分頁功能與多條件查詢功能的示例。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP+Ajax實現的無刷新分頁功能,結合具體實例形式分析了php+ajax通過pdo操作類讀取數據庫并分頁顯示的相關實現技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考
這篇文章主要介紹了thinkPHP多表查詢及分頁功能實現方法,結合具體實例形式分析了thinkPHP多表查詢以及查詢結果的分頁顯示相關實現技巧,需要的朋友可以參考下
這篇文章主要介紹了PHP實現的分頁類定義與用法,結合具體實例形式分析了php封裝的分頁類常用操作及具體使用技巧,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了萬能的php分頁類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
主站蜘蛛池模板: 扬尘在线监测系统_工地噪声扬尘检测仪_扬尘监测系统_贝塔射线扬尘监测设备「风途物联网科技」 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 镀锌钢格栅_热镀锌格栅板_钢格栅板_热镀锌钢格板-安平县昊泽丝网制品有限公司 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 首页-瓜尔胶系列-化工单体系列-油田压裂助剂-瓜尔胶厂家-山东广浦生物科技有限公司 | 市政路灯_厂家-淄博信达电力科技有限公司 | 山东PE给水管厂家,山东双壁波纹管,山东钢带增强波纹管,山东PE穿线管,山东PE农田灌溉管,山东MPP电力保护套管-山东德诺塑业有限公司 | 加气混凝土砌块设备,轻质砖设备,蒸养砖设备,新型墙体设备-河南省杜甫机械制造有限公司 | 深圳彩钢板_彩钢瓦_岩棉板_夹芯板_防火复合彩钢板_长鑫 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | 上海租车公司_上海包车_奔驰租赁_上海商务租车_上海谐焕租车 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 永嘉县奥阳陶瓷阀门有限公司| 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 德州网站开发定制-小程序开发制作-APP软件开发-「两山开发」 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 佛山市德信昌电子有限公司 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 广州番禺搬家公司_天河黄埔搬家公司_企业工厂搬迁_日式搬家_广州搬家公司_厚道搬迁搬家公司 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 冲锋衣滑雪服厂家-冲锋衣定制工厂-滑雪服加工厂-广东睿牛户外(S-GERT) | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 雷冲击高压发生器-水内冷直流高压发生器-串联谐振分压器-武汉特高压电力科技有限公司 | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 |