前提・実現したいこと
ここに質問の内容を詳しく書いてください。
こんにちは。
Laravel初心者です。
現在取得した住所をGoogle geocording APIを使用して緯度経度に変換してDBに保存をしている最中です。
primary keyの「id」の部分の重複でエラーが起きています。(AIで元からidは入っています)
これの対処法はどうしたら良いでしょうか?
発生している問題・エラーメッセージ
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY' (SQL: insert into saunas
(id
, lat
) values (1, 35.7129568))
エラーメッセージ
該当のソースコード
<?php namespace App\Http\Controllers; // use Illuminate\Support\Facades\Sa; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\Sauna; class SaunaController extends Controller { public function showList() { mb_language("Japanese");//文字コードの設定 mb_internal_encoding("UTF-8"); // ①住所一覧をデータベースから取得 $saunas = Sauna::select('address')->get(); $User_A = []; for ($i=1; $i <count($saunas); $i++) { $address = $saunas[$i]->address; $address = urlencode($address); $myKey = "KEy"; $url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "+CA&key=" . $myKey ; $contents = file_get_contents($url); $jsonData = json_decode($contents, true); $lat = $jsonData["results"][0]["geometry"]["location"]["lat"]; $User_E = new Sauna(); $User_E->id = $i; $User_E->lat = $lat; $User_A[] = $User_E->toArray(); break; } Sauna::insert($User_A); } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。