我为db表创建了一个过滤器,但过滤只适用于第一页
我在控制器中尝试此代码
public function index(Request $request)
{
$user=User::orderBy('created_at', 'ASC');
if($request->get('search'))
{
if ($request->get('type')) {
$user->where('type', $request->get('type'));
}
if ($request->get('id')) {
$user->where('id', (integer)$request->get('id'));
}
if ($request->get('first_name')) {
$user->where('first_name', $request->get('first_name'));
}
if ($request->get('email')) {
$user->where('email', $request->get('email'));
}
}
$users = $user->paginate(20);
$user->appends(['search' => $request->get('search')]);
return view('admin.user.index', compact('users'));
}
但是我收到了这个错误
Call to undefined method Illuminate\Database\Query\Builder::appends()
如何解决此错误或如何使过滤器适用于所有页面?
答案 0 :(得分:0)
如我所见,您已经使用了以下行并在用户中对用户数据进行了分页
$users = $user->paginate(20);
因此,您需要使用用户变量而不是用户
$users->appends(['search' => $request->get('search')]);