问题描述
方法 Illuminate\Notifications\DatabaseNotificationCollection::paginate 确实如此 不存在。
public function index()
{
$messages = collect();
$notifications = auth()->user()->unreadNotifications->paginate(5);
foreach ($notifications as $notification) {
$message = NotificationToMessageFactory::make($notification->type)
->toMessage($notification->data);
$messages->push($message);
}
}
解决方法
您应该在循环遍历集合之前进行分页,否则当您只需要 5 个时,您将检索与查询匹配的所有记录。像这样:
$messages = collect();
$notifications = auth()->user()->unreadNotifications()->paginate(5);
foreach($notifications as $notification) {
$message = NotificationToMessageFactory::make($notification->type)->toMessage($notification->data);
$messages->push($message);
}
,
您必须在查询构建器实例上而不是在集合上调用 paginate()。 正确的语法是:
$notifications = auth()->user()->unreadNotifications()->paginate(5);