Laravel отлично работает с find, но не работает после добавления пагината - PullRequest
0 голосов
/ 16 февраля 2019

Таблица загружается нормально без функции paginate(5), но когда я добавляю функцию разбивки на страницы, она показывает ошибку.

public function index(Request $request)
{
    $userid = $request->user()->assets()->get(['id']);
    $arr['love'] = Love::find($userid)->paginate(5);
    return view('admin.love.index')->with($arr);
}

Ошибка:

Whoops, looks like something went wrong.
(1/1) BadMethodCallException

Method paginate does not exist.
in Macroable.php line 74
at Collection->__call('paginate', array(5))in AssetsController.php line 26

Ответы [ 3 ]

0 голосов
/ 16 февраля 2019

find() метод возвращает только один результат.paginate не будет работать с методом find.

Вы можете сделать это

public function index(Request $request)
{
     $userid = $request->user()->assets()->get(['id']);
     $arr['love'] = Love::whereIn($'user_id', $user->id)->toArray()->paginate(5);
     return view('admin.love.index')->with($arr);
}
0 голосов
/ 16 февраля 2019

Ответ разрешается с помощью whereIn, а не где.

public function index(Request $request)
{
     $userid = $request->user()->assets()->get(['id']);
     $arr['love'] = Love::whereIn('user_id', $userid)->paginate(5);
     return view('admin.love.index')->with($arr);
}
0 голосов
/ 16 февраля 2019

Когда вы используете find, он извлекает одну запись.Вы не можете вызвать paginate на одной записи.Вам нужно позвонить на модельера.

Love::where('user_id', $user->id)->paginate()
...