【问题标题】:How to apply pagination & offset in Laravel Eloquent如何在 Laravel Eloquent 中应用分页和偏移
【发布时间】: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)会发生什么?
  • 您所说的“需要另外两个参数”是什么意思?
  • 你需要使用skiptake,像这样:...->skip(num_recs_to_skip)->take(num_recs_to_take)->get();
  • 只需将 get()->toArray() 替换为 paginate(15)..希望它有效..

标签: php laravel eloquent pagination offset


【解决方案1】:

试试这个

$results ['result'] = 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 . '%');
    }])->paginate(6);

    return view('Your View PHP', $results);

【讨论】:

  • 我不想删除 toArray
  • $results['results'] 这是一个数组格式。因此,如果您执行查询,每个数据都将进入数组 => $results['results']
猜你喜欢
  • 2014-01-12
  • 2016-06-09
  • 2017-07-06
  • 1970-01-01
  • 2015-12-20
  • 2019-12-25
  • 1970-01-01
  • 2017-07-24
  • 2022-07-11
相关资源
最近更新 更多