DistrictTableSeeder.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. use Illuminate\Database\Seeder;
  3. class DistrictTableSeeder extends Seeder
  4. {
  5. /**
  6. * Run the database seeds.
  7. *
  8. * @return void
  9. */
  10. public function run()
  11. {
  12. set_time_limit(0);
  13. //清空表
  14. \App\Models\District::truncate();
  15. /**
  16. 规则:设置显示下级行政区级数(行政区级别包括:国家、省/直辖市、市、区/县、乡镇/街道多级数据)
  17. 可选值:0、1、2、3等数字,并以此类推
  18. 0:不返回下级行政区;
  19. 1:返回下一级行政区;
  20. 2:返回下两级行政区;
  21. 3:返回下三级行政区;
  22. */
  23. $dep = 3;
  24. $url = 'http://restapi.amap.com/v3/config/district?key=5f6d1733b6b08927f8c44f9fd70e1026&subdistrict='.$dep;
  25. $client = new \GuzzleHttp\Client();
  26. $response = $client->get($url);
  27. if ($response->getStatusCode()==200){
  28. $res = \GuzzleHttp\json_decode($response->getBody());
  29. $data = $res->districts[0]->districts;
  30. foreach ($data as $d1){
  31. //插入省
  32. $province = \App\Models\District::create([
  33. 'adcode' => $d1->adcode,
  34. 'name' => $d1->name,
  35. 'center' => $d1->center,
  36. 'level' => $d1->level
  37. ]);
  38. if (isset($d1->districts) && !empty($d1->districts)){
  39. foreach ($d1->districts as $d2){
  40. //插入市
  41. $city = \App\Models\District::create([
  42. 'adcode' => $d2->adcode,
  43. 'name' => $d2->name,
  44. 'center' => $d2->center,
  45. 'level' => $d2->level,
  46. 'parent_id' => $province->id
  47. ]);
  48. if (isset($d2->districts) && !empty($d2->districts)){
  49. foreach ($d2->districts as $d3){
  50. //插入区县
  51. $qu = \App\Models\District::create([
  52. 'adcode' => $d3->adcode,
  53. 'name' => $d3->name,
  54. 'center' => $d3->center,
  55. 'level' => $d3->level,
  56. 'parent_id' => $city->id
  57. ]);
  58. if (isset($d3->districts) && !empty($d3->districts)){
  59. foreach ($d3->districts as $d4){
  60. //插入乡镇
  61. $zhen = \App\Models\District::create([
  62. 'adcode' => $d4->adcode,
  63. 'name' => $d4->name,
  64. 'center' => $d4->center,
  65. 'level' => $d4->level,
  66. 'parent_id' => $qu->id
  67. ]);
  68. }
  69. }
  70. }
  71. }
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }