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."
のようなメッセージで失敗します。私が理解できないのは:
required
として設定されていないのに検証が失敗するのはなぜですか?つまり、値が空の場合、それを無視してエラーをスローしないはずですよね?
値がnull
として設定されている場合、検証が失敗するのはなぜですか?
パラメータがまったく送信されないのに検証が失敗するのはなぜですか? (まったく投稿されていないlastName
など)
Laravel 5.3検証で何か変更されましたか?
追加 nullable
ルール:
'firstName' => 'string|max:255|nullable',
'lastName' => 'string|max:255|nullable'
検証中のフィールドは
null
です。これは、null
値を含むことができる文字列や整数などのプリミティブを検証するときに特に役立ちます。