<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 分頁 當我們需要逐漸呈現大量任意數據時,就會發生分頁過程。`Phalcon\Paginator`提供了一種快速便捷的方法,可將這些數據集拆分為可瀏覽頁面。 ## 數據適配器 該組件使用適配器封裝不同的數據源: | 適配器 | 描述 | | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Phalcon\Paginator\Adapter\NativeArray` | 使用PHP數組作為源數據 | | `Phalcon\Paginator\Adapter\Model` | 使用`Phalcon\Mvc\Model\Resultset`對象作為源數據。由于PDO不支持可滾動游標,因此不應使用此適配器對大量記錄進行分頁 | | `Phalcon\Paginator\Adapter\QueryBuilder` | 使用`Phalcon\Mvc\Model\Query\Builder`對象作為源數據| ## 工廠 使用`adapter`選項加載Paginator Adapter類 ```php <?php use Phalcon\Paginator\Factory; $builder = $this->modelsManager->createBuilder() ->columns('id, name') ->from('Robots') ->orderBy('name'); $options = [ 'builder' => $builder, 'limit' => 20, 'page' => 1, 'adapter' => 'queryBuilder', ]; $paginator = Factory::load($options); ``` ## 示例 在下面的示例中,分頁器將使用模型中的查詢結果作為其源數據,并將顯示的數據限制為每頁10條記錄: ```php <?php use Phalcon\Paginator\Adapter\Model as PaginatorModel; // Current page to show // In a controller/component 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( [ 'data' => $robots, 'limit' => 10, 'page' => $currentPage, ] ); // Get the paginated results $page = $paginator->getPaginate(); ``` `$currentPage` 變量控制要顯示的頁面。`$paginator->getPaginate()` 返回包含分頁數據的`$page`對象。它可以用于生成分頁: ```php <table> <tr> <th>Id</th> <th>Name</th> <th>Type</th> </tr> <?php foreach ($page->items as $item) { ?> <tr> <td><?php echo $item->id; ?></td> <td><?php echo $item->name; ?></td> <td><?php echo $item->type; ?></td> </tr> <?php } ?> </table> ``` `$page` 對象還包含導航數據: ```php <a href='/robots/search'>First</a> <a href='/robots/search?page=<?= $page->before; ?>'>Previous</a> <a href='/robots/search?page=<?= $page->next; ?>'>Next</a> <a href='/robots/search?page=<?= $page->last; ?>'>Last</a> <?php echo 'You are in page ', $page->current, ' of ', $page->total_pages; ?> ``` ## 使用適配器 每個適配器必須使用的源數據示例: ```php <?php 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( [ 'data' => Products::find(), 'limit' => 10, 'page' => $currentPage, ] ); // Passing an array as data $paginator = new PaginatorArray( [ 'data' => [ ['id' => 1, 'name' => 'Artichoke'], ['id' => 2, 'name' => 'Carrots'], ['id' => 3, 'name' => 'Beet'], ['id' => 4, 'name' => 'Lettuce'], ['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( [ 'builder' => $builder, 'limit' => 20, 'page' => 1, ] ); ``` ## 頁面屬性 The `$page` 對象具有以下屬性: | 屬性 | 描述 | | ------------- | ------------------------------------------------------ | | `items` | 要在當前頁面顯示的記錄集 | | `current` | 當前頁面 | | `before` | 當前的上一頁 | | `next` | 當前的下一頁 | | `last` | 記錄集中的最后一頁 | | `total_pages` | 頁數 | | `total_items` | 源數據中的項目數 | ## 實現自己的適配器 必須實現 `Phalcon\Paginator\AdapterInterface` 接口才能創建自己的分頁器適配器或擴展現有的分頁器適配器: ```php <?php use Phalcon\Paginator\AdapterInterface as PaginatorInterface; class MyPaginator implements PaginatorInterface { /** * Adapter constructor * * @param array $config */ public function __construct($config); /** * Set the current page number * * @param int $page */ public function setCurrentPage($page); /** * Returns a slice of the resultset to show in the pagination * * @return stdClass */ public function getPaginate(); } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看