CityService.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Services;
  3. use App\City;
  4. use Illuminate\Support\Str;
  5. Class CityService
  6. {
  7. public static $cities = ['汕头','汕尾'];
  8. /*
  9. * array | string $column
  10. * 默认一些select字段,可传递string 或 array来指定select字段
  11. */
  12. public function getSelection($column = ['id','name']){
  13. if (!is_array($column)) {
  14. $column = [$column];
  15. }
  16. return City::query()->select($column)->get();
  17. }
  18. public function find($id){
  19. return City::query()->find($id);
  20. }
  21. public function findByName($name)
  22. {
  23. $city = City::query()->where('name',$name)->first();
  24. if(isset($city))return $city;
  25. foreach (CityService::$cities as $city) {
  26. if(strstr($city,$name) != null){
  27. return City::query()->where('name','like',$city.'%')->first();
  28. }
  29. }
  30. if(str_ends_with($name,'自治州')){
  31. $city_name = Str::before($name,'自治州');
  32. return City::query()->where('name','like',$city_name.'%')->first();
  33. }
  34. if(str_ends_with($name,'市')){
  35. $city_name = Str::before($name,'市');
  36. return City::query()->where('name','like',$city_name.'%')->first();
  37. }
  38. return null;
  39. }
  40. }