where('name',$name)->first(); if(isset($province))return $province; foreach (ProvinceService::$provinces as $province) { if(strstr($province,$name) != null || strstr($name,$province) != null){ return Province::query()->where('name',$province)->first(); } } if(str_ends_with($name,'市')){ $province_name = Str::before($name,'市'); return Province::query()->where('name','like',$province_name.'%')->first(); } if(str_ends_with($name,'省')){ $province_name = Str::before($name,'省'); return Province::query()->where('name','like',$province_name.'%')->first(); } return null; } public function first(array $params) { $query = Province::query(); foreach ($params as $column=>$param){ $query->where($column,$param); } return $query->first(); } /** * 根据名称获取省份 * * @param string|null $name * * @return Model|\stdClass */ public function getProvince(?string $name):?Model { if (!$name)return null; $provinceName = mb_substr($name,0,2); return app(CacheService::class)->getOrExecute("province_".$provinceName,function ()use($provinceName){ return Province::query()->where("name","like",$provinceName."%")->first(); },86400); } }