Вызов неопределенной функции setSurroundCount () CodeIgniter 4 - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь реализовать разбиение на страницы в моем представлении, но при вызове функции setSurroundCount выдает ошибку «Вызов неопределенного метода CodeIgniter \ Pager \ Pager: ConfusedetSurroundCount ()» Кто-то знает, почему?

Вот мой контроллер:

function index($limit=100) {

    $model = new \App\Models\TransactionModel();

    $data = [
        'title' => "Transactions",
        'transactionsHTMLTable' => $this->formatTransactionsAsHTMLTable($model->paginate($limit)),
        'pager' => $model->pager
    ];

    echo view('top', $data);
    echo view('transactions', $data);
    echo view('bottom');
} 

Вот мой взгляд;

<h3>Transactions</h3>
<?php
    echo $transactionsHTMLTable;
    // echo $pager->links();
    $pager->setSurroundCount(2);
?>

<nav aria-label="Page navigation">
    <ul class="pagination">
    <?php if ($pager->hasPrevious()) : ?>
        <li>
            <a href="<?= $pager->getFirst() ?>" aria-label="First">
                <span aria-hidden="true">First</span>
            </a>
        </li>
        <li>
            <a href="<?= $pager->getPrevious() ?>" aria-label="Previous">
                <span aria-hidden="true">&laquo;</span>
            </a>
        </li>
    <?php endif ?>

    <?php foreach ($pager->links() as $link) : ?>
        <li <?= $link['active'] ? 'class="active"' : '' ?>>
            <a href="<?= $link['uri'] ?>">
                <?= $link['title'] ?>
            </a>
        </li>
    <?php endforeach ?>

    <?php if ($pager->hasNext()) : ?>
        <li>
            <a href="<?= $pager->getNext() ?>" aria-label="Previous">
                <span aria-hidden="true">&raquo;</span>
            </a>
        </li>
        <li>
            <a href="<?= $pager->getLast() ?>" aria-label="Last">
                <span aria-hidden="true">Last</span>
            </a>
        </li>
    <?php endif ?>
    </ul>
</nav> 

Вот функция formatTransactionsAsHTMLTable ():

function formatTransactionsAsHTMLTable($transactions) {
    $htmlTable = array();

    $table = new \CodeIgniter\View\Table();

    $template = [
        'table_open' => '<table class="table table-striped table-hover table-sm small">'
    ];

    $table->setTemplate($template);

    $table->setHeading('ID', 'Date', 'Subscription ID', 'Duration', 'Price', 'Proceed', 'Device', 'Country', 'Subscriber ID');

    foreach ($transactions as $key => $transaction) {
        $table->addRow($transaction['id'], $transaction['date'], $transaction['subscriptionId'], $transaction['duration'], $transaction['price'] . " " . $transaction['currency'], $transaction['proceed'] . " " . $transaction['proceedCurrency'], $transaction['device'], $transaction['country'], $transaction['subscriberId']);
    }

    return $table->generate();
}

Я взял все из документации Codeigniter 4.

Если я выведу $ pager-> links (), это сработает. Таким образом, $ pager здесь, но функции setSurroundCount getFirst, getNext, ... не работают. Кто-нибудь может мне помочь?

...