如何在 Laravel 8 上的 blade 中显示分页链接?
How to display pagination links in a blade on Laravel 8?
我需要添加分页,但在我的情况下似乎很复杂,因为我使用分页从数据库中获取数据,但随后我修改了这些数据,当我在 [=33= 上调用 links()
方法时], 我得到以下异常
方法Illuminate\Support\Collection::链接不存在。
我在控制器方法中的代码:
$transactionsByLastMonth = Transaction::where('created_at', '>=', Carbon::now()->subDays(30)->toDateTimeString())
->where('user_id', Auth::user()->id)
->with(['user', 'propertyFrom', 'propertyTo', 'paddockFrom', 'paddockTo', 'cattleTypeFrom', 'cattleTypeTo'])
->paginate(10);
$transactionsByDays = collect(TransactionResource::collection($transactionsByLastMonth))
->sortByDesc('created_at')
->groupBy(function($date) {
return Carbon::parse($date['created_at'])->format('d');
});
return view('user.reports.index', compact('transactionsByDays'));
是的,分页将我的数据限制为 10 行,但由于我按天对数据进行分组,我的 collection 会自行修改,我无法使用 $transactionsByDays->links()
方法来显示分页.
如果看到 dd($transactionsByDays)
,它看起来像:
Illuminate\Support\Collection {#1381 ▼
#items: array:3 [▼
"01" => Illuminate\Support\Collection {#1019 ▼
#items: array:7 [▼
0 => array:16 [▶]
1 => array:16 [▶]
2 => array:16 [▶]
3 => array:16 [▶]
4 => array:16 [▶]
5 => array:16 [▶]
6 => array:16 [▶]
]
}
31 => Illuminate\Support\Collection {#1386 ▼
#items: array:2 [▼
0 => array:16 [▶]
1 => array:16 [▶]
]
}
30 => Illuminate\Support\Collection {#1384 ▼
#items: array:1 [▼
0 => array:16 [▶]
]
}
]
}
因此我需要将“01”、“31”、“30”内的所有数组一起分页...
我该怎么做?
也许以某种方式在控制器中重写上面的代码?
主要目的是我需要根据我的 json-resource class.
将数据分组到每一天
有什么想法吗?
我找到了一个解决方案 gyus。我还必须传递一个变量 transactionsByLastMonth
并对此使用 links()
方法。
同时,我在 blade 文件上使用 transactionsByDays
变量上的 foreach。它可以正确地一起工作,因为它使用来自数据库的相同数据,只是在第一种情况下它没有被过滤和分组,而在第二种情况下它是。
return view('user.reports.index', compact('transactionsByLastMonth', 'transactionsByDays'));
我需要添加分页,但在我的情况下似乎很复杂,因为我使用分页从数据库中获取数据,但随后我修改了这些数据,当我在 [=33= 上调用 links()
方法时], 我得到以下异常
方法Illuminate\Support\Collection::链接不存在。
我在控制器方法中的代码:
$transactionsByLastMonth = Transaction::where('created_at', '>=', Carbon::now()->subDays(30)->toDateTimeString())
->where('user_id', Auth::user()->id)
->with(['user', 'propertyFrom', 'propertyTo', 'paddockFrom', 'paddockTo', 'cattleTypeFrom', 'cattleTypeTo'])
->paginate(10);
$transactionsByDays = collect(TransactionResource::collection($transactionsByLastMonth))
->sortByDesc('created_at')
->groupBy(function($date) {
return Carbon::parse($date['created_at'])->format('d');
});
return view('user.reports.index', compact('transactionsByDays'));
是的,分页将我的数据限制为 10 行,但由于我按天对数据进行分组,我的 collection 会自行修改,我无法使用 $transactionsByDays->links()
方法来显示分页.
如果看到 dd($transactionsByDays)
,它看起来像:
Illuminate\Support\Collection {#1381 ▼
#items: array:3 [▼
"01" => Illuminate\Support\Collection {#1019 ▼
#items: array:7 [▼
0 => array:16 [▶]
1 => array:16 [▶]
2 => array:16 [▶]
3 => array:16 [▶]
4 => array:16 [▶]
5 => array:16 [▶]
6 => array:16 [▶]
]
}
31 => Illuminate\Support\Collection {#1386 ▼
#items: array:2 [▼
0 => array:16 [▶]
1 => array:16 [▶]
]
}
30 => Illuminate\Support\Collection {#1384 ▼
#items: array:1 [▼
0 => array:16 [▶]
]
}
]
}
因此我需要将“01”、“31”、“30”内的所有数组一起分页...
我该怎么做?
也许以某种方式在控制器中重写上面的代码?
主要目的是我需要根据我的 json-resource class.
将数据分组到每一天
有什么想法吗?
我找到了一个解决方案 gyus。我还必须传递一个变量 transactionsByLastMonth
并对此使用 links()
方法。
同时,我在 blade 文件上使用 transactionsByDays
变量上的 foreach。它可以正确地一起工作,因为它使用来自数据库的相同数据,只是在第一种情况下它没有被过滤和分组,而在第二种情况下它是。
return view('user.reports.index', compact('transactionsByLastMonth', 'transactionsByDays'));