Я пытаюсь создать постраничный набор результатов в Lumen.Я не использую коллекцию базы данных, вместо этого это коллекция массивов.
Мне удалось отобразить результаты, однако у меня возникла проблема с использованием метода pagination links ().Вот что у меня есть:
PHP:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
class AppController extends Controller
{
public function index(Request $request)
{
$items = [
'item1',
'item2',
'item3',
'item4',
];
$collection = collect($items);
$currentPage = LengthAwarePaginator::resolveCurrentPage();
$perPage = 2;
$offset = ($currentPage * $perPage) - $perPage;
$currentPageResults = $collection->slice($offset, $perPage)->all();
$paginatedItems = new LengthAwarePaginator($currentPageResults, count($collection), $perPage);
$paginatedItems->setPath($request->url());
return view('index', [
'results' => $paginatedItems,
]);
}
}
Просмотр:
<ul>
@foreach ($results as $result)
<li>{{ $result }}</li>
@endforeach
</ul>
<div>
{{ $results->links() }}
</div>
Я получаю ошибку:
call_user_func () ожидает, что параметр 1 будет допустимым обратным вызовом, без указания массива или строки
Если я удалю $results->links()
, я не получу ошибку.
Когда я dd($paginationItems)
Я получаю обратно действительный LengthAwarePaginator
объект:
![enter image description here](https://i.stack.imgur.com/pQUE1.png)