Как я могу использовать Eloquent 5.3 Pagination с Twig

В последнее время я обновил Eloquent до последней версии, и пагинация перестала работать. В основном, когда я вызываю ссылки () в ветке, чтобы напечатать нумерацию страниц, я получаю следующее сообщение об ошибке

Fatal error: Uncaught Error: Call to a member function make() on null in /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/crm/vendor/illuminate/pagination/LengthAwarePaginator.php:140
Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/crm/vendor/illuminate/pagination/LengthAwarePaginator.php(119): Illuminate\Pagination\LengthAwarePaginator->render(NULL)
#1 /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/crm/app/Providers/CMSServiceProvider.php(115): Illuminate\Pagination\LengthAwarePaginator->links()
#2 /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/twig-cache/18/189d0df44f1fe623fdad2b6fb631c15897dda3614de070c872657111c85f5f1a.php(333): Herbert\Framework\Application->{closure}(Object(Illuminate\Pagination\LengthAwarePaginator))
#3 /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/properties-integration/ in /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/crm/vendor/illuminate/pagination/LengthAwarePaginator.php on line 140

Тогда если я сделаю dd($clients->links()) внутри моего контроллера я получаю следующее сообщение об ошибке

Warning: call_user_func() expects parameter 1 to be a valid callback, no array or string given in /Applications/XAMPP/xamppfiles/htdocs/*****/public_html/wp-content/plugins/crm/vendor/illuminate/pagination/AbstractPaginator.php on line 377

но если я сделаю dd($clients) Я получаю объект Eloquent с выбранными записями и текущей страницей.

Вот ссылки на занятия

https://github.com/illuminate/pagination/blob/5.3/LengthAwarePaginator.php#L140-L143

https://github.com/illuminate/pagination/blob/master/AbstractPaginator.php#L405-L424

ОБНОВИТЬ

Я сделал временное решение, которое в основном я использовал доступные функции AbstractPaginator. Если у кого-то есть лучший подход, пожалуйста, не стесняйтесь размещать его.

$function = new Twig_SimpleFunction("render", function ($object) {
$html = '';
$data = array(); // start out array
$data['pages'] = ceil($object->total() / $object->perPage()); // calc pages
$data['si'] = ($object->currentPage() * $object->perPage()) - $object->perPage(); // what row to start at
$data['curr_page'] = $object->currentPage(); // Whats the current page

$max = 7;

if ($data['curr_page'] < $max) {
$sp = 1;
} elseif ($data['curr_page'] >= ($data['pages'] - floor($max / 2))) {
$sp = $data['pages'] - $max + 1;
} elseif ($data['curr_page'] >= $max) {
$sp = $data['curr_page'] - floor($max / 2);
}

if ($data['curr_page'] > $max) {
$html .= '<li ><a href="' . $object->url(1) . '">First Page</a></li>';
}

for ($i = $sp; $i <= ($sp + $max - 1); $i++) {

if ($i > $data['pages']) {
continue;
}

if ($object->currentPage() == $i) {
$html .= ' <li class="active">';
} else {
$html .= '<li >';
}
$html .= ' <a href="' . $object->url($i) . '">' . $i . '</a>
</li>';

}

if ($data['curr_page'] < ($data['pages'] - floor($max / 2))) {
$html .= '<li ><a href="' . $object->url($object->lastPage()) . '">Last Page</a></li>';
}

return $html;

});

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]