2

我正在为我的 slim 3 应用程序使用 Twig 视图,但我不知道如何使用下面雄辩的 ORM 进行分页是我的代码。

模型:

namespace App\Models;
use Illuminate\Database\Eloquent\Model;

class Todo extends Model
{
    protected $table = "todo";
    protected $fillable = [
        'todo_name',
    ];
}

这是我渲染视图的代码

use App\Models\Todo;
$app->get('/', function ($request, $response) {
    $data = Todo::all()->paginate(5);
    return $this->view->render($response, 'home.twig', [
        'title' => 'Home',
        'todolist' => $data,
    ]);
})->setName('homepage');

我得到了这个错误

Method paginate does not exist.
4

2 回答 2

1

试试 $data = Todo::paginate(5);

于 2017-03-19T22:06:11.640 回答
0

要使用分页,您需要illuminate/pagination包。当您包含照明/数据库时,默认情况下不包含它。您可以使用 composer 将其包含在您的项目中:

composer require illuminate/pagination

并且你不应该在调用 all() 或 get() 之后调用 paginate() 方法。试试这个:

$data=Todo::paginate(5);

请注意,要使分页正常工作,它需要知道当前页码,否则它将始终返回第一页的结果。请查看此答案以了解如何设置页面解析器。

于 2017-07-20T09:54:52.180 回答