sort = $item->id; $item->save(); } public static function getPaginateList($categoryId, $per = 20, $isSample = false) { $paginate = [ 'list_rows' => $per ]; $items = self::where('category_id', $categoryId)->order('sort', 'desc')->paginate($paginate, $isSample); if(!$items->isEmpty()) { $ids = $items->column('id'); $infoList = HistoryInfo::getByHistoryIds($ids); foreach ($items as $k => $item) { $items[$k]['info'] = $infoList[$item['id']] ?? []; } } return $items; } public static function getByCategoryId($categoryId, $onlyVisible = false, $defaultNum = -1) { $items = self::where('category_id', $categoryId) ->when($onlyVisible, function($query){ $query->where('visible', 1); }) ->order('sort', 'desc') ->select(); if(!$items->isEmpty()) { $ids = $items->column('id'); $infoList = []; if ($defaultNum != 0) { $infoList = HistoryInfo::getByHistoryIds($ids, $onlyVisible); } foreach ($items as $k => $item) { $infos = $infoList[$item['id']] ?? []; $infoData = $defaultNum > 0 ? array_slice($infos, 0, $defaultNum, false) : $infos; $items[$k]['info'] = $infoData; } } return $items->toArray(); } }