流明-分页links()方法不起作用

时间:2018-11-12 17:05:09

标签: php laravel lumen

我正在尝试在Lumen中创建一个分页的结果集。我没有使用数据库集合,而是一个数组集合。

我设法显示了结果,但是在使分页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

1 个答案:

答案 0 :(得分:0)

我找到了答案:

bootstrap/app.php中,默认情况下有一行代码被注释掉:

// $app->withEloquent();

为了使分页links()方法起作用,需要对此进行注释。