有时候需要分页 数据一条sql出不来就就可以这样
public function countIndex(Request $request)
{
$schoolId = $request->input('school_id');
$startDate = $request->input('start_date');
$endDate = $request->input('end_date');
$textbook = $request->input('_keyword');
$name = $request->input('name');
$list = TextbookOrderSon::selectRaw('id,school_id,textbook_id,SUM(number) AS sum')->where('type', 1)
->when($schoolId, function ($query) use ($schoolId) {
$query->where('school_id', $schoolId);
})
->when($endDate, function ($query) use ($startDate, $endDate) {
$query->whereDate('created_at', '>=', $startDate)->whereDate('created_at', '<=', $endDate);
})
->when($textbook, function ($query) use ($textbook) {
$query->wherehas('textbook', function ($query) use ($textbook) {
$query->where('name', 'like', '%' . $textbook . '%');
});
})
// ->when($name, function ($query) use ($name) {
// $query->wherehas('school', function ($query) use ($name) {
// $query->where('name', 'like', '%' . $name . '%');
// });
// })
->with(['textbook:id,name', 'school:id,name'])
->groupBy('school_id')->groupBy('textbook_id')
->orderBy('textbook_id')->orderBy('school_id')
->index($request);
$page = $this->page($list);
foreach ($page->resource as &$value) {
$subList = TextbookOrderSon::select('number', 'created_at')->where('type', 1)->where('school_id', $value['school_id'])->where('textbook_id', $value['textbook_id'])->orderBy('created_at')->get()->toArray();
$value["sub_list"] = $subList;
}
return $page;
}
先分好页然后在插入数据