Laravel分页与原始查询

时间:2017-05-05 15:57:00

标签: php laravel pagination

我在Laravel中使用原始SQL查询,因为一开始我更容易进行复杂查询,所以我就这样使用它们。

现在我想得到一个用户7的评论列表,我想在5中对评论进行分页。

这就是我所拥有的:

$comments = DB::select( DB::raw("SELECT users.name,  reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;")
   ,array('logged_user' => $user_id,));

因此,此查询取决于咨询视图的用户,接收变量。

我所看到的所有分页都是针对Eloquent查询,我没有找到任何明确的用法。

如果我添加' - > paginate(5)'在最后一个括号的末尾,或稍后到变量,如$ comments-> paginate(5);我得到了:

错误:调用数组

上的成员函数paginate()

对此有所了解?

非常感谢! =)

1 个答案:

答案 0 :(得分:-1)

你可以做这样的分页。

$perPage = $request->input("per_page", 10);
$page = $request->input("page", 1);
$skip = $page * $perPage;
 if($take < 1) { $take = 1; }
if($skip < 0) { $skip = 0; }

$comments = DB::select( DB::raw("SELECT users.name,  reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;"),array('logged_user' => $user_id,));

$totalCount = $comments->count();
$results = $comments
    ->take($perPage)
    ->skip($skip)
    ->get();
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($results, $totalCount, $take, $page);

return $paginator;

希望它会对你有所帮助!