-
ルールクラスを作成する方法: Laravelでは、独自のバリデーションルールを作成することができます。緯度経度のバリデーションには、
Rule
クラスを使用してカスタムルールを作成します。namespace App\Rules; use Illuminate\Contracts\Validation\Rule; class LatLong implements Rule { public function passes($attribute, $value) { // 緯度経度のバリデーションロジックを実装する } public function message() { return '緯度経度の形式が正しくありません。'; } }
このルールクラスを使って、バリデーションルールを指定します。
use App\Rules\LatLong; $rules = [ 'latitude' => ['required', new LatLong], 'longitude' => ['required', new LatLong], ];
-
正規表現を使用する方法: 緯度経度の形式を正規表現で検証することもできます。
$rules = [ 'latitude' => ['required', 'regex:/^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/'], 'longitude' => ['required', 'regex:/^[-]?((1?[0-7]?[0-9])\.(\d+))|(180(\.0+)?)$/'], ];
上記の正規表現パターンは、一般的な緯度経度の形式を検証します。
-
拡張バリデータを使用する方法: Laravelには、独自のバリデータを追加するための拡張機能も提供されています。緯度経度のバリデータを作成するには、
Validator
ファサードを使用します。use Illuminate\Support\Facades\Validator; $validator = Validator::make($request->all(), [ 'latitude' => ['required', 'lat'], 'longitude' => ['required', 'long'], ]); if ($validator->fails()) { // バリデーションエラーの処理 }
上記のコードでは、
lat
とlong
という拡張バリデータを使用しています。
これらの方法を使用することで、緯度経度のバリデーションを実装することができます。適切な方法を選択し、アプリケーションの要件に応じてカスタマイズしてください。