orderBy("sequence")->select($column)->get(); } /** * 设置/刷新 单位缓存 */ public function setUnitCache() { $units = Unit::query()->get(); Cache::forever("units",$units); } /** * 获取单位缓存 * * @return mixed */ public function getUnitCache() { if (!Cache::has("units")){ $units = Unit::query()->get(); Cache::forever("units",$units); } return Cache::get("units"); } /** * 获取单位集的映射 * * @param null|array $targets * * @return array */ public function getUnitMapping($targets = null) { return Cache::remember("unitMapping:".json_encode($targets,JSON_UNESCAPED_UNICODE),config("cache.expirations.rarelyChange"),function ()use($targets){ $result = []; $units = $this->getUnitCache(); if (!$units)return []; foreach ($units as $unit){ if (!$targets)$result[$unit->id] = $unit->name; else if (array_search($unit->name,$targets)!==false)$result[$unit->id] = $unit->name; } return $result; }); } }