分頁後的資料 使用集合的map方法過濾資料後, 分頁的資訊都沒有了, 只有查詢到的資料了 , 為什麼?
程式碼如下:
//查詢出來的分頁資料 有列印是有分頁資訊的
$goods = Goods::query()
->join('goods_categories', 'goods_categories.id', '=', 'goods.category_id')
->join('users', 'users.id', '=', 'goods.user_id')
->where('goods.sale_type', $request->sale_type)
->orderBy($order_field, $order_type)
->when($category_name, function ($query)use ($category_name){
$query->where('goods_categories.name', 'like', '%'.$category_name.'%');
})
->leftJoin('user_authenticates as ua', 'ua.uid', '=', 'users.id')
->select([
'goods.*',
'users.name as user_name',
'users.phone',
'users.avatar',
'ua.status',
'goods_categories.name',
])
->paginate();
// 對分頁資料進行處理
$goods = $goods->map(function($item){
$attr_name_arr = [];
if(!empty($item->goods_attrs)){
$attr_name_arr = GoodsAttributeValue::query()
->whereIn('id', $item->goods_attrs)
->select(['id', 'name'])
->get()
->toArray();
$attr_name_arr = array_column($attr_name_arr, 'name');
}
$item->goods_attri_name = implode(',', $attr_name_arr);
return $item;
});
return $this->success($goods);
注: $this->success 是我寫的trait裡的方法
資料結果就是莫得了分頁資訊:
本作品採用《CC 協議》,轉載必須註明作者和本文連結