php [cakephp:Paginator示例] CakePHP上PaginatorComponent的示例代码。 #cakephp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php [cakephp:Paginator示例] CakePHP上PaginatorComponent的示例代码。 #cakephp相关的知识,希望对你有一定的参考价值。

<?php 


/**
 * Paginator
 * @link [PaginatorComponent](https://book.cakephp.org/3.0/ja/controllers/components/pagination.html)  
 * @link [PaginatorHelper](https://book.cakephp.org/3.0/ja/views/helpers/paginator.html)
 */

// in AppController
public function initialize()
{
  parent::initialize();
  $this->loadComponent('Paginator');
}

// Controller method
public function index() {
  $user = $this->Auth->user();
  $query = $tihs->Articles->find()->where([ 
    'Articles.user_id' => $user['id'],  // フィルタリングはここでやんないとだめ
  ]); 
  $Articles = $this->paginate($query, [
    'sortWhitelist' => ['Tags.name'], //関連エンティティのソート時はホワイトリストを設定
    'contain' => ['Tags'],
    'limit' => 10,
    'order' => ['Articles.created' => 'desc']
  ]);
  $this->set(compact('Articles'));
}
?>

<!-- View -->
<table class="mdl-data-table mdl-js-data-table mdl-shadow--2dp l-fitwidth t-font-size--small">
  <thead>
    <tr>
      <th><?php echo $this->Paginator->sort('Articles.created', '投稿日') ?></th>
      <th><?php echo $this->Paginator->sort('Articles.title', 'タイトル') ?></th>
      <th><?php echo $this->Paginator->sort('Tags.name', 'タグ') ?></th>
    </tr>
  </thead>
  <tbody>
    <?php foreach ($Articles ?? [] as $Article): ?>
      <tr>
        <td><?php echo h($Article->created->format('Y/m/d')) ?></td>
        <td><?php echo h($Article->title) ?></td>
        <td>
          <?php echo h($Article->tag->name) ?>
        </td>
      </tr>
    <?php endforeach ?>
  </tbody>
</table>

以上是关于php [cakephp:Paginator示例] CakePHP上PaginatorComponent的示例代码。 #cakephp的主要内容,如果未能解决你的问题,请参考以下文章

cakephp 3如何向paginator排序类添加active?

php [cakephp:AuthComponent示例] AuthComponent的示例代码。 #cakephp

cakephp简单示例

使Cakephp分页器记住传递的参数

使用 CakePHP 分页助手的引导分页

从分页的 CakePHP 控制器中找出有多少页的结果