使用 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 分页的主要内容,如果未能解决你的问题,请参考以下文章

使用 Twig 生成纯 JSON 响应是不是合适?

无法使用 laravel eloquent ORM 插入 PostgreSQL

使用 Eloquent ORM 时是不是需要在数据库级别维护外键?

使用 Eloquent ORM 执行 MYSQL 事务

如何使用 Eloquent ORM 进行多重连接查询

使用 sum 与关系 Laravel Eloquent ORM