エンジニアのひよこ_level10

毎日更新してた人。たまに記事書きます。

【Laravel】FormRequestクラスで、複雑なバリデーションをしたい【783日目】

FormRequestクラスで、複雑なバリデーションをしたい

このリクエストしか使わないので、独自バリデーションを作りたくない

かといって、Controllerとかで受け取って処理するのは、別の場所に関心を増やすから嫌だってことで。

インスタンス取得時に追加

/**
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function getValidatorInstance()
{
    $validator = parent::getValidatorInstance();
    $validator->after(function ($validator) {
        if ($this->input('item_count') > 10) {
            $validator->errors()->add('item_count', 'これ以上購入は出来ません');
        }
    });
    return $validator;
}

ここで追加でバリデーションを定義する。