- リクエスト用のクラスを作成する まず、リクエストデータを追加するためのカスタムリクエストクラスを作成します。これは、LaravelのArtisanコマンドで簡単に生成することができます。以下のコマンドを実行して、新しいリクエストクラスを作成します。
php artisan make:request YourRequestClassName
このコマンドを実行すると、app/Http/Requests
ディレクトリにYourRequestClassName.php
という名前のクラスファイルが生成されます。
- リクエストデータのバリデーションルールを定義する
YourRequestClassName
クラスファイル内で、rules
メソッドを定義してリクエストデータのバリデーションルールを指定します。以下は、例として名前とメールアドレスのフィールドが必須である場合のルールの定義です。
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
];
}
- リクエストデータの追加
YourRequestClassName
クラス内で、authorize
メソッドとvalidated
メソッドをオーバーライドしてリクエストデータの追加を行います。
public function authorize()
{
// 認証のロジックをここに追加する
return true;
}
public function validated()
{
$data = parent::validated();
// 追加のリクエストデータをここで指定する
$data['additional_data'] = 'Additional data value';
return $data;
}
authorize
メソッドでは、リクエストの認証ロジックを追加することができます。validated
メソッドでは、親クラスのvalidated
メソッドを呼び出してバリデーション済みのデータを取得し、必要な場合に追加のデータを指定することができます。
- リクエストをコントローラで使用する カスタムリクエストクラスを使用するには、コントローラでインスタンスを作成してリクエストを渡す必要があります。以下は、コントローラ内での使用例です。
public function store(YourRequestClassName $request)
{
// リクエストデータの使用例
$name = $request->input('name');
$email = $request->input('email');
$additionalData = $request->input('additional_data');
// ここでリクエストデータを処理する
}
このようにすることで、カスタムリクエストクラス内で追加のリクエストデータを指定し、コントローラでそれを使用することができます。
以上が、Laravelでリクエストデータを追加する方法です。バリデーションルールの定義や追加のデータの指定により、リクエストデータを柔軟に制御することができます。