登録日:
2025-03-06
最終更新日:
2025-03-19
ChatGTP を利用して Laravel のバリデーションを作成
ChatGTP を利用して Laravel のバリデーションを作成する方法を紹介します。
フォーム内容とバリデーション設定内容の洗い出し
サブミットする HTML タグ内容とバリデーションチェックを行う内容を箇条書きで書き出します。
サンプル
タグ名称:id(未設定許可、数値制限)
タグ名称:title(必須入力、100文字制限)
タグ名称:content(必須入力)
ChatGTP への命令内容
以下の内容を CahtGTP に入力し実行する。
サンプル
Laravel
タグ名称:id(未設定許可、数値制限)
タグ名称:title(必須入力、100文字制限)
タグ名称:content(必須入力)
バリデーションを書いて
フォームリクエストの作成
php artisan make:request ExampleRequest
バリデーションルールの定義
作成された app/Http/Requests/ExampleRequest.php を編集します。
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ExampleRequest extends FormRequest
{
/**
* 認可の設定(必要に応じて変更)
*/
public function authorize(): bool
{
return true; // 必要なら適宜変更
}
/**
* バリデーションルールを定義
*/
public function rules(): array
{
return [
'id' => ['nullable', 'integer'], // 未設定許可・数値のみ
'title' => ['required', 'string', 'max:100'], // 必須・100文字以内
'content' => ['required', 'string'], // 必須
];
}
/**
* エラーメッセージをカスタマイズ
*/
public function messages(): array
{
return [
'id.integer' => 'contentid は数値で入力してください。',
'title.required' => 'タイトルは必須です。',
'title.max' => 'タイトルは100文字以内で入力してください。',
'content.required' => 'コンテンツは必須です。',
];
}
}
コントローラーで適用
作成したフォームリクエストをコントローラーで使用します。
use App\Http\Requests\ExampleRequest;
public function store(ExampleRequest $request)
{
// データ保存などの処理
}
フロントエンド(Blade)でエラーメッセージを表示
Blade テンプレートで、フォームのエラーメッセージを表示できます。
<form action="{{ route('store') }}" method="POST">
@csrf
<label for="contentid">コンテンツID</label>
<input type="text" name="contentid" value="{{ old('contentid') }}">
@error('contentid')
<div class="error">{{ $message }}</div>
@enderror
<label for="title">タイトル</label>
<input type="text" name="title" value="{{ old('title') }}">
@error('title')
<div class="error">{{ $message }}</div>
@enderror
<label for="content">コンテンツ</label>
<textarea name="content">{{ old('content') }}</textarea>
@error('content')
<div class="error">{{ $message }}</div>
@enderror
<button type="submit">送信</button>
</form>