Laravel
laravel5.6

【Laravel】フォームリクエストFormRequestでバリデーション前に入力値(Request)を整える

ValidatesWhenResolvedTrait.phpprepareForValidation()をオーバーライドすると、バリデーション実行前にリクエストに対して任意の処理を行い、データを整形できます:relaxed:


/app/Http/Requests/MyFormRequest.php


protected function prepareForValidation(): void
{
// ここで任意の処理を行う
// 今回は、comment配列から、空の配列要素を取り除く処理を行う例
if ($this->has('comment')) {
$this->merge([
'comment' => $this->trimEmptyElements(
$this->input('comment')
)
]);
}
}


バリデーション前に入力値に任意の処理を行いたいことって結構ありますよね:blush:

以下オーバーライド元の処理を参考に掲載しておきます:dizzy:


参考