Как добавить нумерацию страниц в запрос? - PullRequest
0 голосов
/ 10 октября 2018

Раньше я просто делал запрос, который выбирал какое-то поле и некоторые условия.Эта строка кода дает мне правильный результат.

public function index()
{
    // Get links
    $links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
        ->orderBy('id', 'desc')
        ->where('delete_flg', 0)
        ->get();

    // Return data
    return view('dashboard')->with(
        array(
            'links' => json_decode($links),
            'current_datetime' => Carbon::now()
        )
    );
}

Теперь я хочу реализовать разбиение на страницы в приведенной выше строке.

$links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
    ->orderBy('id', 'desc')
    ->where('delete_flg', 0)
    ->get()->paginate(2);

Когда я пытаюсь использовать paginate (2) в конце, я получаю сообщение об ошибке:

Method Illuminate\Database\Eloquent\Collection::paginate does not exist.

Итак, из какого-то другого урока я попробовал без -> get () и затем разбил на страницыЯ получаю такую ​​ошибку.

count(): Parameter must be an array or an object that implements Countable

Я не совсем понимаю, как реализовать paginate.

Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы можете просто сделать следующее:

$links = Link::select('id', 'url', 'short_url', 'counter', 'expired_on')
            ->orderBy('id', 'desc')
            ->where('delete_flg', 0)
            ->paginate(2);

paginate уже действует как ->get()

И вот как вы возвращаете данные / коллекцию в ваше представление:

// return data
return view('dashboard', compact('links'));

Альтернатива компактной:

return view('dashboard')->with([
    'links' => $links
]);

Тогда, на ваш взгляд, вы можете делать с данными все, что захотите:

@foreach($links as $link)
    <p>{{ link }}</p>
@endforeach
0 голосов
/ 10 октября 2018

Это задокументированное изменение в PHP 7.2 .Вам нужно либо обновить Laravel до версии 5.6+, либо обновить PHP до версии 7.1.

Кроме того, вы должны использовать paginate() без ->get(), вам также следует ознакомиться с документацией по нумерации страниц .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...