使用 laravel 对时间线分组日期进行分页
Paginate timeline groupBy date with laravel
我正在为患者检查建立时间表,它们看起来像这样:
timeline patients exams
当我点进一个病人会显示他做过的所有检查,使用的方法是:
return view('papeis.paciente.historico', [
'vinculos' => Vinculo::where('paciente_id',$id)->get()->sortByDesc('admissao')
->groupBy(function ($item, $key) {
return $item->admissao->format('d/m/Y');
}),
'paciente' => Paciente::findOrFail($id),
]);
患者检查 ("Vinculo") 按日期 "admissao" 分组,以显示日期和他当天进行的检查。我不能对集合进行分页,所以我不知道如何对 groupBy 集合进行分页。
我认为 Laravel 本身不支持,但您可以自己构建它:
$admissaoes = Vinculo::where('paciente_id', $id)->distinct()
->select('admissao')->orderByDesc('admissao')->get();
$page = Paginator::resolveCurrentPage() ?: 1;
$perPage = 5;
$pageAdmissaoes = $admissaoes->forPage($page, $perPage);
$paginator = new LengthAwarePaginator($pageAdmissaoes, $admissaoes->count(), $perPage, $page);
$vinculos = Vinculo::where('paciente_id', $id)
->whereIn('admissao', $pageAdmissaoes->pluck('admissao'))
->orderByDesc('admissao')->get();
我正在为患者检查建立时间表,它们看起来像这样:
timeline patients exams
当我点进一个病人会显示他做过的所有检查,使用的方法是:
return view('papeis.paciente.historico', [
'vinculos' => Vinculo::where('paciente_id',$id)->get()->sortByDesc('admissao')
->groupBy(function ($item, $key) {
return $item->admissao->format('d/m/Y');
}),
'paciente' => Paciente::findOrFail($id),
]);
患者检查 ("Vinculo") 按日期 "admissao" 分组,以显示日期和他当天进行的检查。我不能对集合进行分页,所以我不知道如何对 groupBy 集合进行分页。
我认为 Laravel 本身不支持,但您可以自己构建它:
$admissaoes = Vinculo::where('paciente_id', $id)->distinct()
->select('admissao')->orderByDesc('admissao')->get();
$page = Paginator::resolveCurrentPage() ?: 1;
$perPage = 5;
$pageAdmissaoes = $admissaoes->forPage($page, $perPage);
$paginator = new LengthAwarePaginator($pageAdmissaoes, $admissaoes->count(), $perPage, $page);
$vinculos = Vinculo::where('paciente_id', $id)
->whereIn('admissao', $pageAdmissaoes->pluck('admissao'))
->orderByDesc('admissao')->get();