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
                )
            );
    

      

  • 相关阅读:
    python爬虫开发与项目实践-学习笔记(一)
    python之TypeError
    学习笔记-python
    python学习之Unable to locate element
    Chrome浏览器之 webdriver(Chrome version must be >= 63.0.3239.0)
    POJ 1830 开关问题 高斯消元
    HDU 4135 Co-prime 容斥原理
    HDU 1796 How many integers can you find 容斥原理
    卡特兰数,组合数,斯特林数,逆元模板
    HDU 6134 Killer Names 数学 斯特林数
  • 原文地址:https://www.cnblogs.com/achengmu/p/5873078.html
Copyright © 2011-2022 走看看