Laravel 10 で郵便番号の整合性チェックと自動住所入力

animal_chara_radio_penguin laravel

Laravel 10 で郵便番号の整合性チェックと自動住所入力のコーディングは可能です。以下の手順で進めていきましょう。

1. 準備

Laravel 10 プロジェクトを新規作成
必要なライブラリをインストール
> composer require “guzzlehttp/guzzle”
> composer require “illuminate/support”
.env ファイルに API キーなどの環境変数を設定
API_KEY=YOUR_API_KEY
2. API エンドポイントの設定

config/app.php ファイルに、使用する API エンドポイントの URL を設定します。

PHP
‘api_endpoint’ => ‘https://api.example.com/addresses’,
コードは注意してご使用ください。
3. モデルの作成

app/Models/Address.php ファイルに、住所情報モデルを作成します。

PHP
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Address extends Model
{
protected $fillable = [
‘prefecture’,
‘city’,
‘town’,
‘street’,
];
}
コードは注意してご使用ください。
4. コントローラーの作成

app/Http/Controllers/AddressController.php ファイルに、住所情報関連の処理を行うコントローラーを作成します。

PHP
<?php

namespace App\Http\Controllers;

use App\Models\Address;
use Illuminate\Http\Request;

class AddressController extends Controller
{
public function fetchAddress(Request $request)
{
// 郵便番号の整合性チェック
$postalCode = $request->input(‘postalCode’);
if (!isValidPostalCode($postalCode)) {
return response()->json([‘error’ => ‘Invalid postal code’], 400);
}

// API 呼び出し
$client = new \GuzzleHttp\Client();
$response = $client->request(‘GET’, config(‘app.api_endpoint’) . ‘/’ . $postalCode);
$data = json_decode($response->getBody(), true);

// 住所情報オブジェクトを作成
$address = new Address();
$address->prefecture = $data[‘prefecture’];
$address->city = $data[‘city’];
$address->town = $data[‘town’];
$address->street = $data[‘street’];

// 住所情報オブジェクトを保存
$address->save();

// 住所情報オブジェクトを返す
return response()->json($address);
}
}
コードは注意してご使用ください。
5. ルートの設定

routes/web.php ファイルに、fetchAddress アクションへのルートを設定します。

PHP
Route::post(‘/addresses/fetch’, ‘AddressController@fetchAddress’);
コードは注意してご使用ください。
6. フロントエンドの実装

Blade テンプレートファイルで、fetchAddress アクションを呼び出す JavaScript コードを記述します。

HTML
<script>
function fetchAddress(postalCode) {
// …

axios.post(‘/addresses/fetch’, {
postalCode: postalCode,
}).then((response) => {
// 取得した住所情報を処理
}).catch((error) => {
// エラー処理
});
}
</script>
コードは注意してご使用ください。
7. テスト

郵便番号を入力して、fetchAddress アクションを呼び出し、住所情報が正しく取得されることを確認します。

8. セキュリティ対策

ユーザーが入力した郵便番号をサニタイジングする
取得した住所情報を暗号化して保存する
9. その他

郵便番号の整合性チェックロジックを拡張する
複数の API エンドポイントに対応する
エラー処理を詳細化する
10. リファレンス

Laravel 10 ドキュメント: https://laravel.com/docs/10.x/
Guzzle HTTP: [無効な URL を削除しました]
Illuminate Support: https://laravel.com/docs/10.x/helpers
ソース
github.com/11Aravind/Agventure

タイトルとURLをコピーしました