2 回答
TA贡献1796条经验 获得超10个赞
请试试这个
$prestations = Prestation::with('service','facility','conciergeries.network')
->whereHas('service', function ($query) use ($searchService) {
$query->select('id','name')->where('name', 'regexp', "/$searchService/i");
})
->whereHas('facility', function ($query) use ($searchPartenaire) {
$query->select('id','name')->where('name', 'regexp', "/$searchPartenaire/i");
})
->whereHas('conciergeries.network', function ($query) use ($searchFiliale) {
$query->select('id','name')->where('name', 'regexp', "/$searchFiliale/i");
})
->where('name', 'regexp', "/$search/i")
->orderBy($orderBy, $orderDirection);
$res = [
'results' => $prestations->simplePaginate(50),
'total' => $prestations->count(),
];
return $res;
TA贡献1853条经验 获得超6个赞
Eloquent 查询非常灵活,您可以在执行它们之前将它们存储为变量。
这是您可以执行的操作的简化示例:
// Start your query and store it as a variable
$query = Prestation::where('name', 'regexp', "/$search/i");
// Now count the total number of entries which will return
$count = $query->count();
// Finally, do your pagination
$prestations = $query->simplePaginate(50);
当然,您可以将所有其他约束添加到查询中,我刚刚删除了它们以简化答案。
分享
编辑
跟随
于 2020 年 1 月 3 日 1
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报