標題の通りですが、どのような機会に必要でしょうか。
私が遭遇した場面ですと、POST Requestにはuser_idを含めない but バリデーションrulesの中で、user_idを利用したい場合です。
例えば、category_idとuser_idの掛け合わせた場合のUnique処理などです。
validationData()を利用.
FormRequestのクラス内でvalidationDataを使うとバリデーションデータを変更可能 ※ただし、Requestデータが変更される訳ではないのでご注意を。
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Auth; class CommentRequest extends FormRequest { // //省略 // protected function validationData() { $data = $this->all(); $data['user_id'] = Auth::id(); // dd($data); // $dataを確認して見て下さい。 return $data; } public function rules() { $user_id = $this->validationData()['user_id']; //validationData()を呼び出しています。 return [ 'comment' => 'required', 'category_id' => ['required',Rule::unique('comments', 'channel_id')->where('user_id', $user_id)], ]; } // //省略 // }
他のメソッドも合わせて紹介されている下記、ご参考に!
※ メソッドをpublic指定して下さいとErrorが出たので、ご注意を。