cakephp 分頁(yè)
如果我們想顯示一組龐大的數(shù)據(jù),我們可以使用分頁(yè),這個(gè)功能在 cake php 4 中可用,非常好用。
我們有一個(gè)名為"文章"的表格,其中包含以下數(shù)據(jù):
讓我們使用分頁(yè)來(lái)以頁(yè)面的形式顯示數(shù)據(jù),而不是將它們?nèi)匡@示。
示例
在 config/routes.php 文件中進(jìn)行更改,如以下程序所示。
config/routes.php
use cake\http\middleware\csrfprotectionmiddleware; use cake\routing\route\dashedroute; use cake\routing\routebuilder; $routes--->setrouteclass(dashedroute::class); $routes->scope('/', function (routebuilder $builder) { $builder->registermiddleware('csrf', new csrfprotectionmiddleware([ 'httponly' => true, ])); $builder->applymiddleware('csrf'); //$builder->connect('/pages',['controller'=>'pages','action'=>'display', 'home']); $builder->connect('posts',['controller'=>'posts','action'=>'index']); $builder->fallbacks(); });
在 src/controller/postscontroller.php 中創(chuàng)建一個(gè) postscontroller.php 文件。 將以下代碼復(fù)制到控制器文件中。忽略(如果已創(chuàng)建)。
src/controller/postscontroller.php
namespace app\controller; use app\controller\appcontroller; class postscontroller extends appcontroller { public function index(){ $this--->loadmodel('articles'); $articles = $this->articles->find('all')->order(['articles.id asc']); $this->set('articles', $this->paginate($articles, ['limit'=> '3'])); } } ?>
文章表中的數(shù)據(jù)使用:
$this->loadmodel('articles'); $articles = $this->articles->find('all')->order(['articles.id asc']);
應(yīng)用分頁(yè),我們w應(yīng)該顯示每條記錄有 3 個(gè)數(shù)據(jù),并按照以下方式進(jìn)行:
$this->set('articles', $this->paginate($articles, ['limit'=> '3']));
這足以在 文章 表上激活分頁(yè)。
在 src/template 創(chuàng)建一個(gè)目錄 posts,然后在該目錄下創(chuàng)建一個(gè)名為 index.php 的 view 文件。將以下代碼復(fù)制到該文件中。
src/template/posts/index.php
foreach ($articles as $key=-->$article) {?><a href="#"></a> } <ul class="pagination"> <!--?= $this--->paginator->prev("<<") ?> <!--?= $this--->paginator->numbers() ?> <!--?= $this--->paginator->next(">>") ?></ul><!--?= $article--->title ?>
<!--?= $article--->details ?>
頁(yè)面列表的分頁(yè)如下:
<ul class="pagination"> <!--?= $this--->paginator->prev("<<") ?> <!--?= $this--->paginator->numbers() ?> <!--?= $this--->paginator->next(">>") ?></ul>
通過(guò)訪問(wèn)以下 url 執(zhí)行上述示例:
http://localhost/cakephp4/posts
輸出
當(dāng)您運(yùn)行代碼時(shí),您將看到以下輸出:
點(diǎn)擊下面的數(shù)字,切換到下一頁(yè),或者使用下一個(gè)或上一個(gè)按鈕。
例如
您將看到 page=2 附加到瀏覽器中的頁(yè)面 url。
- CodeIgniter 教程
- CodeIgniter 國(guó)際化
- CakePHP 控制器
- CakePHP 視圖
- CakePHP 擴(kuò)展視圖
- CakePHP 查看記錄
- CakePHP 驗(yàn)證
- CakePHP 創(chuàng)建驗(yàn)證器
- FuelPHP 安裝
- FuelPHP 配置
- FuelPHP 路由
- FuelPHP 高級(jí)表單編程
- FuelPHP 主題
- FuelPHP 錯(cuò)誤
- Laravel 應(yīng)用程序結(jié)構(gòu)
- Laravel 表單
- Laravel 本地化
- Laravel 發(fā)送電子郵件
- Laravel Facades
- Laravel Artisan控制臺(tái)