2016-09-19 2 views
1

JSon данные:Как включить данные из JSON в MySQL в Laravel

{"RECORDS": [{ 

     "id": 1, 
     "name": "آذربایجان شرقی", 
     "lat": 37.90357330, 
     "long": 46.26821090 
    }, 
    { 
     "id": 2, 

     "name": "آذربایجان غربی", 
     "lat": 37.45500620, 
     "long": 45.00000000 
    }, 
    { 
     "id": 3, 

     "name": "اردبیل", 
     "lat": 38.48532760, 
     "long": 47.89112090 
    }, 
    { 
     "id": 4, 

     "name": "اصفهان", 
     "lat": 32.65462750, 
     "long": 51.66798260 
    }, 
    { 
     "id": 5, 

     "name": "البرز", 
     "lat": 35.99604670, 
     "long": 50.92892460 
    }, 
    { 
     "id": 6, 

     "name": "ایلام", 
     "lat": 33.29576180, 
     "long": 46.67053400 
    }, 
    { 
     "id": 7, 

     "name": "بوشهر", 
     "lat": 28.92338370, 
     "long": 50.82031400 
    }, 
    { 
     "id": 8, 

     "name": "تهران", 
     "lat": 35.69611100, 
     "long": 51.42305600 
    }, 
    { 
     "id": 9, 

     "name": "چهارمحال و بختیاری", 
     "lat": 31.96143480, 
     "long": 50.84563230 
    }, 
    { 
     "id": 10, 

     "name": "خراسان جنوبی", 
     "lat": 32.51756430, 
     "long": 59.10417580 
    }, 
    { 
     "id": 11, 

     "name": "خراسان رضوی", 
     "lat": 35.10202530, 
     "long": 59.10417580 
    }, 
    { 
     "id": 12, 

     "name": "خراسان شمالی", 
     "lat": 37.47103530, 
     "long": 57.10131880 
    }, 
    { 
     "id": 13, 

     "name": "خوزستان", 
     "lat": 31.43601490, 
     "long": 49.04131200 
    }, 
    { 
     "id": 14, 

     "name": "زنجان", 
     "lat": 36.50181850, 
     "long": 48.39881860 
    }, 
    { 
     "id": 15, 

     "name": "سمنان", 
     "lat": 35.22555850, 
     "long": 54.43421380 
    }, 
    { 
     "id": 16, 

     "name": "سیستان و بلوچستان", 
     "lat": 27.52999060, 
     "long": 60.58206760 
    }, 
    { 
     "id": 17, 

     "name": "فارس", 
     "lat": 29.10438130, 
     "long": 53.04589300 
    }, 
    { 
     "id": 18, 

     "name": "قزوین", 
     "lat": 36.08813170, 
     "long": 49.85472660 
    }, 
    { 
     "id": 19, 

     "name": "قم", 
     "lat": 34.63994430, 
     "long": 50.87594190 
    }, 
    { 
     "id": 20, 

     "name": "كردستان", 
     "lat": 35.95535790, 
     "long": 47.13621250 
    }, 
    { 
     "id": 21, 

     "name": "كرمان", 
     "lat": 30.28393790, 
     "long": 57.08336280 
    }, 
    { 
     "id": 22, 

     "name": "كرمانشاه", 
     "lat": 34.31416700, 
     "long": 47.06500000 
    }, 
    { 
     "id": 23, 

     "name": "کهگیلویه و بویراحمد", 
     "lat": 30.65094790, 
     "long": 51.60525000 
    }, 
    { 
     "id": 24, 

     "name": "گلستان", 
     "lat": 37.28981230, 
     "long": 55.13758340 
    }, 
    { 
     "id": 25, 

     "name": "گیلان", 
     "lat": 37.11716170, 
     "long": 49.52799960 
    }, 
    { 
     "id": 26, 

     "name": "لرستان", 
     "lat": 33.58183940, 
     "long": 48.39881860 
    }, 
    { 
     "id": 27, 

     "name": "مازندران", 
     "lat": 36.22623930, 
     "long": 52.53186040 
    }, 
    { 
     "id": 28, 

     "name": "مركزی", 
     "lat": 33.50932940, 
     "long": -92.39611900 
    }, 
    { 
     "id": 29, 

     "name": "هرمزگان", 
     "lat": 27.13872300, 
     "long": 55.13758340 
    }, 
    { 
     "id": 30, 

     "name": "همدان", 
     "lat": 34.76079990, 
     "long": 48.39881860 
    }, 
    { 
     "id": 31, 
     "name": "یزد", 
     "lat": 32.10063870, 
     "long": 54.43421380 
    } 
    ] 
} 

И у меня есть таблица с именем провинции & имеют столбцы с именем: name, lat, long

Как может Я добавляю эти данные в свою таблицу как name и lat и long в Laravel?

мой стол:

public function up() 
    { 
     Schema::create('provinces', function (Blueprint $table) { 
      $table->integer('id'); 
      $table->string('name'); 
      $table->text('lat'); 
      $table->text('long'); 
      $table->timestamps(); 
     }); 
    } 
+0

использовать функцию json_decode(), чтобы преобразовать ее в массив, а затем передать ее в laravel eloquent [Массовое назначение Laravel] (https://laravel.com/docs/5.3/eloquent#mass-assignment) –

+0

Я думаю, вам как-то понадобится рассказать нам, КАК вы хотите достичь этого. Вы хотите засеять свою базу данных этими данными? Или вы чаще получаете данные, и вам нужен способ импорта json? или это процесс «на лету», где вы запрашиваете данные json и хотите вставить его в базу данных? –

+0

Я просто хочу, чтобы семена базы данных с этими данными – Katerou22

ответ

3

попробовать это,

 foreach($data as $d){ 
     Province::create($d); 
    }  

или

 foreach($data['RECORDS'] as $d){ 
     Province::create($d); 
    }   

Примечание: - Вам не нужно, чтобы дать значение ID, если это авто приращения колонка средства.

Смежные вопросы