【发布时间】:2019-08-19 09:15:33
【问题描述】:
我正在使用姓名和电子邮件搜索用户,以下是我的正文请求:
{
"email": "shah",
"name": "shah",
}
我想在这个 API 中应用分页和偏移,这将采用另外两个参数,偏移和分页将相应地搜索,我的正文请求将是这样的:
{
"email": "shah",
"name": "shah",
"offset": 1,
"paginate": 1
}
我的代码:
$pram = $request->name;
$email= $request->email;
$roleId= $request->role_id;
$results = User::where('email','like', '%' . $email . '%')
->WhereHas('userBasicInfo', function ($query) use ($pram) {
$query->where('first_name', 'like', '%' . $pram . '%')
->orWhere('middle_name', 'like', '%' . $pram . '%')
->orWhere('last_name', 'like', '%' . $pram . '%');
})->with(['userBasicInfo' => function ($query) use ($pram) {
$query->where('first_name', 'like', '%' . $pram . '%')
->orWhere('middle_name', 'like', '%' . $pram . '%')
->orWhere('last_name', 'like', '%' . $pram . '%');
}])->get()->toArray();
如何在上面的 API 中应用分页和偏移量,它需要两个参数。
【问题讨论】:
-
删除
->get()->toArray();并设置->paginate(15)会发生什么? -
您所说的“需要另外两个参数”是什么意思?
-
你需要使用
skip和take,像这样:...->skip(num_recs_to_skip)->take(num_recs_to_take)->get(); -
只需将 get()->toArray() 替换为 paginate(15)..希望它有效..
标签: php laravel eloquent pagination offset