在单元格 CakePhp 3 中使用 PaginatorHelper

Use PaginatorHelper in Cells CakePhp 3

您好,我正在尝试在 Cell 中使用 Paginator,Paginator 可以正常工作,但单元格模板中的 PaginatorHelper 无法正常工作。

我正在使用 CakePhp 3.5

这是我的代码

src/View/Cell/FinderCell.php

namespace App\View\Cell;
use Cake\View\Cell;
use Cake\Datasource\Paginator;
class FinderCell extends Cell {

    public function display() {
        $this->loadModel('Pokemon');
        $paginador = new Paginator();

        $pokemons = $paginador->paginate(
            $this->Pokemon->find()
        );

        $this->set(compact('pokemons'));
    }
}

src/Template/Cell/Finder/display.ctp

<?php 
foreach ($pokemons as $pokemon) :
 ?>
<div class="tipo form large-2 medium-2 columns content">
    <?php echo $this->Html->image($pokemon->pokemon_image) ?>
</div>
<?php endforeach; ?>

<div class="paginator">
    <ul class="pagination">
        <?= $this->Paginator->prev('<< Anterior') ?>
        <?= $this->Paginator->numbers() ?>
        <?= $this->Paginator->next('Siguiente >>') ?>
    </ul>
    <p><?= $this->Paginator->counter() ?></p>
</div>

我明白了

如果您想使用帮助程序,则需要使用分页参数填充请求对象,这是分页器组件通常会为您做的:

// ...

$this->request = $this->request->withParam(
    'paging',
    $paginator->getPagingParams() + (array)$this->request->getParam('paging')
);

$this->set(compact('pokemons'));

或分页器助手,后者又在请求对象上设置参数:

// ...

$pagingParams = $paginator->getPagingParams();

$this->set(compact('pokemons', 'pagingParams'));
$this->Paginator->options(['paging' => $pagingParams]);

另见