我在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()对此有所了解?
非常感谢! =)
答案 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;
希望它会对你有所帮助!