zoukankan      html  css  js  c++  java
  • phalcon几种分页方法

    phalcon几种分页方法

    一:

    use PhalconPaginatorAdapterModel 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 PhalconPaginatorAdapterModel as PaginatorModel;
    use PhalconPaginatorAdapterNativeArray as PaginatorArray;
    use PhalconPaginatorAdapterQueryBuilder 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
                )
            );
    

      

  • 相关阅读:
    Summary for sql join in Oracle DB
    Merge data into table in Oracle
    PLSQL存储过程传出大量异常错误信息
    oracle 11g plsql解析json数据示例
    识别'低效执行'的SQL语句
    如何开启MySQL 5.7.12 的二进制日志
    Linux下ps命令详解 Linux下ps命令的详细使用方法
    Linux(Unix)时钟同步ntpd服务配置方法
    MySQL 常用命令总结
    MySQL 数据库通过日志恢复
  • 原文地址:https://www.cnblogs.com/achengmu/p/5873078.html
Copyright © 2011-2022 走看看