使用 Eloquent ORM 使用 Twig 视图进行 Slim 3 分页

Posted

技术标签:

【中文标题】使用 Eloquent ORM 使用 Twig 视图进行 Slim 3 分页【英文标题】:Slim 3 pagination with Twig view using Eloquent ORM 【发布时间】:2017-07-21 14:02:24 【问题描述】:

我正在为我的 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.

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

composer require illuminate/pagination

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

$data=Todo::paginate(5);

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

【讨论】:

我的错。在你的问题中遗漏了一些重要的东西。我更新了我的答案,但@Lee 已经给出了正确答案

以上是关于使用 Eloquent ORM 使用 Twig 视图进行 Slim 3 分页的主要内容,如果未能解决你的问题,请参考以下文章