web-dev-qa-db-ja.com

Laravel 5.3変数がNullの場合、検証が失敗する

laravel 5.1から5.3にアップグレードするので、検証に奇妙な問題がいくつかあります。

このようなデータを投稿すると:

firstName    null

検証ルールは次のとおりです。

$validator = Validator::make($postData, [
              'firstName'           => 'string|max:255',
              'lastName'            => 'string|max:255'
            ]);

上記は"The XYZ must be a string."のようなメッセージで失敗します。私が理解できないのは:

  1. requiredとして設定されていないのに検証が失敗するのはなぜですか?つまり、値が空の場合、それを無視してエラーをスローしないはずですよね?

  2. 値がnullとして設定されている場合、検証が失敗するのはなぜですか?

  3. パラメータがまったく送信されないのに検証が失敗するのはなぜですか? (まったく投稿されていないlastNameなど)

Laravel 5.3検証で何か変更されましたか?

18
Neel

追加 nullable ルール:

'firstName' => 'string|max:255|nullable',
'lastName' => 'string|max:255|nullable'

検証中のフィールドはnullです。これは、null値を含むことができる文字列や整数などのプリミティブを検証するときに特に役立ちます。

53
Alexey Mezenin