Laravel工作正常,但添加分页后它不起作用

问题描述 投票:-1回答:3

没有paginate(5)函数,表加载正常,但是当我添加paginate函数时,它显示错误。

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
laravel eloquent laravel-5.4
3个回答
0
投票

当您使用find时,它会检索单个记录。您无法在单个记录上调用paginate。您需要在模型构建器上调用它。

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

0
投票

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
投票

通过使用whereIn而不是where来解决问题。

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.