Yii框架分页达成方式详解

2019-07-06 06:49栏目:编程程序

愿意本文所述对大家基于Yii框架的PHP程序设计具备帮忙。

下面是yii自带的写法,这里引进tp的分页类,做个简易的改变,步骤如下

更加多关于Yii相关内容感兴趣的读者可查阅本站专题:《Yii框架入门及常用技术计算》、《php非凡开荒框架总计》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总计》、《php mysql数据库操作入门教程》及《php常见数据库操作本事汇总》

你恐怕感兴趣的稿子:

  • Yii2达成跨mysql数据库关联合检查询排序效能代码
  • Yii2实现多域名跨域同步登陆退出
  • Yii2下session跨域名存活的化解方案
  • Yii基于数组和对象的Model查询本领实例详解
  • Yii学习计算之数据访谈对象 (DAO)
  • Yii框架达成的验证码、登入及退出职能示例
  • Yii框架完结图片上传的点子详解
  • Yii框架分页实现情势详解
  • Yii框架使用魔术点子达成跨文件调用功效示例

前日在英特网看了下关于图片上传的学科,历经波折才调节和测量试验好,未来把有关代码及其表达贴出来,以供初次使用的情大家参谋。

下家集团用的框架是yii,近些日子看了下有关课程,今儿把分页教程写下,最终把tp的分页也给整合进了yii,因为个人认为yii分页没有tp用的随手。

但愿本文所述对我们基于Yii框架的PHP程序设计有所接济。

12. 门类路线 :

Controller:

总结:

此时此刻项目用yii框架,controller调用facade的方法,facade调用adapter的法子,adapter调用api的法子,api封装了sql方法,不过大多数景况下,只是单纯的调用,但限于这段时间项目标条条框框,都要写方法,而艺术都以只是的return,于是写了个demo,模拟了下。

Yii::app()->getController()->getAction()->id;
<?php
class Upload extends CActiveRecord {
  public $image;
  public static function model($className = __CLASS__) {
    return $className;
  }
  public function tableName() {
    return '{{resource}}';
  }
  public function rules() {
    return array(
      array('image', 'file', 'types'=>'jpg, gif, png')
    );
  }
}

何况利用findAll也得以达成分页的查询效能,代码如下

正文实例陈诉了Yii框架使用魔术点子完成跨文件调用。分享给大家供大家参谋,具体如下:

YII::app()->basePath;

你或者感兴趣的篇章:

  • Yii编制程序开辟常见调用本事集锦
  • Yii2达成跨mysql数据库关联合检查询排序效用代码
  • Yii2达成多域名跨域同步登陆退出
  • Yii2下session跨域名存活的消除方案
  • Yii基于数组和对象的Model查询本领实例详解
  • Yii学习计算之数据访谈对象 (DAO)
  • Yii框架达成的验证码、登陆及退出职能示例
  • Yii框架分页达成格局详解
  • Yii框架使用魔术点子达成跨文件调用功效示例
$this->varPage = C('VAR_PAGE') ? C('VAR_PAGE') : 'p' ;

你恐怕感兴趣的稿子:

  • Yii编程开采常见调用本领集锦
  • Yii2达成跨mysql数据库关联合检查询排序功用代码
  • Yii2达成多域名跨域同步登陆退出
  • Yii2下session跨域名存活的化解方案
  • Yii基于数组和目的的Model查询本领实例详解
  • Yii学习总括之数据访谈对象 (DAO)
  • Yii框架完毕的验证码、登陆及退出职能示例
  • Yii框架完毕图片上传的措施详解
  • Yii框架分页完结格局详解
$cookie = new CHttpCookie('mycookie','this is my cookie');
$cookie->expire = time() 60*60*24*30; //有限期30天
Yii::app()->request->cookies['mycookie']=$cookie;
// autoloading model and component classes
  'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.extensions.*',  #加上此行,意思为自动载入
  ),
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));
  }
}
<?php
class aApi
{
  public static function tt1($name, $age)
  {
    print_r($name);
    echo $age;
  }
}
class aAdapter
{
  public function __call($func, $params)
  {
    $class = substr(get_called_class(), 0, -7) . 'Api';
    return call_user_func_array(array($class, $func), $params);
  }
}
class aFacade
{
  public static function __callstatic($func, $params)
  {
    // 这里也可以用debug_backtrace()
    $class = substr(get_called_class(), 0, -6) . 'Adapter';
    $obj = new $class();
    return call_user_func_array(array($obj, $func), $params);
  }
}
class aController
{
  public function actionC()
  {
    aFacade::tt1(['name'], 'age');
  }
}
$a = new aController;
$a->actionC();

6. 赢得get,post过来的数量

信任通过上述手续,朋友们应该可以上传成功图片,况且在项目下的assets目录下找到上传的图片。因为开掘yii未有缩略图的艺术,于是把thinkphp缩略图的不二诀窍结合了进去,把下边代码保存为Image.php放在项目下的protected/extensions目录下

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

10. 取安妥前home url :

注:上面的SITE_USportageL为项目概念的常量,也正是项目的网址

// 根据页码获取列表
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;
}
Yii::app()->request->url;

更加多关于Yii相关内容感兴趣的读者可查阅本站专项论题:《Yii框架入门及常用手艺总括》、《php杰出开辟框架总括》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法计算》、《php mysql数据库操作入门教程》及《php常见数据库操作技能汇总》

经验过ci、tp多个框架后,再看yii进程快相当多。精通某些框架,个人感觉只是就是精通mvc的行使法规,在model层调用数据库方法获得数码,controller层调用model层数据并拓展逻辑管理,再传给view层,同时询问框架的模版操作,表单操作,分页操作,文件上传操作,cookie和session操作,url调用,这么些明白了,在通过项目标磨合,就大约了,领会了常用操作之后,再去看看源码,比较并总结框架间的不一样和共性,进而进步本身的技能,未来常用开辟就无庸赘述,拿可观的报酬也是那般。

7. 获取ip地址

View:

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

Yii::app()->request->getParam('id');

版权声明:本文由ca888发布于编程程序,转载请注明出处:Yii框架分页达成方式详解