Тонкая 3-х страницная с Twig вид с использованием Eloquent ORM

Я использую вид Twig для своего приложения slim 3, но я не знаю, как сделать нумерацию страниц, используя красноречивый 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.

2 ответа

Попробуйте $data = Todo::paginate(5);

Чтобы использовать нумерацию страниц, вам нужно illuminate/pagination пакет. Он не включается по умолчанию при включении подсветки / базы данных. Вы можете использовать composer, чтобы включить его в свой проект:

composer require illuminate/pagination

И вы не должны вызывать метод paginate() после вызова all() или get(). Попробуйте это вместо этого:

$data=Todo::paginate(5);

И, пожалуйста, обратите внимание, что для правильной работы нумерации страниц необходимо знать номер текущей страницы, иначе он всегда будет возвращать результаты для первой страницы. Пожалуйста, посмотрите на этот ответ, чтобы узнать, как настроить распознаватель страниц.

Другие вопросы по тегам