Ikeda's Blog

【Laravel】バリデーションの前に、パラメータを操作する方法

▲閉じる

目次

やりたいこと

Laravelのバリデーションを行う前に、入力値に対して処理を行いたい。
例:半角英数字を入力してもらいたい項目だが、全角で入力された場合でも、半角に変換して受け入れてあげたい。

Request

prepareForValidationを利用することで、実現可能です。

<?php

// ... 省略 ...

class HogeRequest extends FormRequest
{
    public function rules()
    {
        return [
            //           必須        英数字     50文字
            'key' => ['required', 'alpha_num', 'max:50'],
        ];
    }

    public function prepareForValidation() {
        $this->merge([
            'key' => mb_convert_kana($this->key, 'a'),
        ]);
    }
}