phalcon几种分页方法

phalcon几种分页方法

一:

use Phalcon\Paginator\Adapter\Model as PaginatorModel;

// Current page to show
// In a controller this can be:
// $this->request->getQuery('page', 'int'); // GET
// $this->request->getPost('page', 'int'); // POST
$currentPage = (int) $_GET["page"];

// The data set to paginate
$robots      = Robots::find();

// Create a Model paginator, show 10 rows by page starting from $currentPage
$paginator   = new PaginatorModel(
    array(
        "data"  => $robots,
        "limit" => 10,
        "page"  => $currentPage
    )
);

// Get the paginated results
$page = $paginator->getPaginate();

  

 

 

二:

use Phalcon\Paginator\Adapter\Model as PaginatorModel;
use Phalcon\Paginator\Adapter\NativeArray as PaginatorArray;
use Phalcon\Paginator\Adapter\QueryBuilder as PaginatorQueryBuilder;

// Passing a resultset as data
$paginator = new PaginatorModel(
    array(
        "data"  => Products::find(),
        "limit" => 10,
        "page"  => $currentPage
    )
);

// Passing an array as data
$paginator = new PaginatorArray(
    array(
        "data"  => array(
            array('id' => 1, 'name' => 'Artichoke'),
            array('id' => 2, 'name' => 'Carrots'),
            array('id' => 3, 'name' => 'Beet'),
            array('id' => 4, 'name' => 'Lettuce'),
            array('id' => 5, 'name' => '')
        ),
        "limit" => 2,
        "page"  => $currentPage
    )
);

// Passing a QueryBuilder as data

$builder = $this->modelsManager->createBuilder()
    ->columns('id, name')
    ->from('Robots')
    ->orderBy('name');

$paginator = new PaginatorQueryBuilder(
    array(
        "builder" => $builder,
        "limit"   => 20,
        "page"    => 1
    )
);

  

 基于模糊查找的分页:

 $builder = $this->modelsManager->createBuilder()
        ->columns("SysCustomer.cus_id,SysCustomer.man_id,SysCustomer.company_name,SysCustomer.contact_name,SysCustomer.mobile,SysCustomer.serv_status,
        COUNT(DISTINCT SysCustApp.app_id ) as appcode_num,
        COUNT(DISTINCT SysCustAppAirport.airport_code) as airport_num")
        ->from("SysCustomer")
        ->leftJoin("SysCustApp", "SysCustApp.cus_id = SysCustomer.cus_id")
        ->leftJoin("SysCustAppAirport", "SysCustAppAirport.cus_id = SysCustApp.cus_id");
        if(!empty($param))
        {
            $builder ->where($where, array("company" => '%'.$param.'%', "contact"=>'%'.$param.'%', "mobile"=>'%'.$param.'%'));
        }else{
            $builder ->where($where);
        }
        $builder->groupBy("SysCustomer.cus_id");

        $paginator = new PaginatorQueryBuilder(
            array(
                'builder'=>$builder,
                'limit' =>10,
                'page' =>$currentPage
            )
        );

  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值