Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel Paginate usage with DB::raw query

How I can use paginate() with this query?

$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'"));
like image 265
Junaid Shah Avatar asked Oct 16 '25 16:10

Junaid Shah


1 Answers

You may use ->paginate() method or if you want to create a pagination manually, you would do something like:

$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;
like image 136
Blue Genie Avatar answered Oct 18 '25 07:10

Blue Genie



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!