php - Laravel 分页使用 DB::raw 查询

标签 php mysql laravel pagination

如何将 paginate() 用于此查询?

$result = DB::select(DB::raw(" select a.user_id, a.user_email, 
a.user_account_status, a.created_at, b.s_account_limit AS account_limit,
 c.consumed_limit, ((b.s_account_limit*1024) - c.consumed_limit) AS 
remaining_limit FROM upload_limits as b, users AS a JOIN user_upload_limits as 
c WHERE (a.user_id=c.user_id) AND a.user_type='Simple'"));

最佳答案

你可以使用 ->paginate() 方法,或者如果你想手动创建分页,你可以这样做:

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

$basicQuery = DB::select(DB::raw(" select a.user_id, a.user_email, a.user_account_status, a.created_at, b.s_account_limit AS account_limit, c.consumed_limit, ((b.s_account_limit*1024) - c.consumed_limit) AS remaining_limit FROM upload_limits as b, users AS a JOIN user_upload_limits as c WHERE (a.user_id=c.user_id) AND a.user_type='Simple'"));
$totalCount = $basicQuery->count();
$results = $basicQuery
    ->take($perPage)
    ->skip($skip)
    ->get();

$paginator = new \Illuminate\Pagination\LengthAwarePaginator($results, $totalCount, $take, $page);

return $paginator;

关于php - Laravel 分页使用 DB::raw 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39738004/

相关文章:

php - 截断长字符串,不打断带点插值的单词

php - 如何使用准备好的 PDO 语句设置 ORDER BY 参数?

mysql - 从一个表中选择另一个表中不存在的记录

php - 如何将多个查询合并为一个并使用单个 while 循环获取数据?

javascript - 当我们在laravel中使用XMLHttpRequest时,如何在 Controller 中接收表单数据

php - sql - 仅更新表单中更改的值到多个表

php - 将大小值输入数据库 PHP

mysql - 仅使用 Mysql 替换替换中所需的匹配项

Laravel elixir - 不生成 map 文件

php - 在数据库列中存储数组