gpt4 book ai didi

php - 分页方法不存在。在 Laravel 中转换为对象后

转载 作者:行者123 更新时间:2023-12-01 22:07:27 25 4
gpt4 key购买 nike

我收到此分页错误

Method paginate does not exist.

$allTodaysJob = \DB::select(\DB::raw('select * from `new_job` WHERE DATE(created_at) = DATE(CURRENT_TIMESTAMP())'));

$collection = collect($allTodaysJob)->paginate(10);

return view('common_status',['data'=>$collection]);

请帮我解决这个问题。

最佳答案

Paginate 适用于 Eloquent 模型。制作一个模型,然后如果你使用模型,你可以用 eloquent 做这样的事情:

$allTodaysJob = ModelName::where('created_at', DATE(CURRENT_TIMESTAMP())->get()->paginate(10); 

或者如果您想最晚订购:

$allTodaysJob = ModelName::where('created_at', DATE(CURRENT_TIMESTAMP())->latest()->paginate(10); 

但是如果您想使用原始查询,您可以在当前类中创建自定义分页方法。首先,创建一个数组,然后将该数组传递给分页器方法,如下代码所示:

这是分页方法:

 protected function paginate($items,$perPage,$request)
{

$page = Input::get('page', 1); // Get the current page or default to 1

$offset = ($page * $perPage) - $perPage;

return new LengthAwarePaginator(
array_slice($items, $offset, $perPage, true),
count($items), $perPage, $page,
['path' => $request->url(), 'query' => $request->query()]
);
}

然后你可以在从数据库中选择数据后调用分页方法,我建议使用原始方法而不是选择:

$allTodaysJob = \DB::raw('select * from `new_job` WHERE DATE(created_at) = DATE(CURRENT_TIMESTAMP())')->get();

$allTodaysJob = $this->paginate($allTodaysJob,10,$request);

请注意,您应该将 Request $request 传递给索引方法,然后在分页中使用它。因为从该请求通过分页链接到特定页面,laravel 分页知道选择哪些项目在您的 View 中显示。

希望对你有帮助!

关于php - 分页方法不存在。在 Laravel 中转换为对象后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48275148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com