關於 groupBy 分組查詢的分頁處理

wuyan94zl發表於2019-11-27

如例,表user_has_cards設計如下

欄位 說明
id 自增
user_id 使用者id
card_id 字卡id
number 字卡數量

需顯示使用者列表

groupBy查詢下,常規的paginate函式也無法使用
自己的解決方法記錄如下

use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
use App\Models\UserHasCard;
...
$page = 1;//當前頁
$pageSize = 10;
$model = UserHasCard::groupBy('user_id');
$count = DB::table($model)->count();
$data = $model->limit($pageSize)->offset(($page-1)*$pageSize)->get();
$list = new LengthAwarePaginator($data,$count,$pageSize,$page);
...

舉例比較隨意,請不要在意。重點在於groupBy查詢的分頁處理

本作品採用《CC 協議》,轉載必須註明作者和本文連結
沒有造飛機的格局,怎麼能擰得好螺絲。

相關文章