laravel エラー
Q&A
Closed
前提・実現したいこと
こんにちは。
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);
  }
}
0 likes