2016-11-07 7 views
6

laravelを5.1から5.3にアップグレードして以来、私は検証と奇妙な問題がいくつかあります。Laravel 5.3変数がNULLのときに検証が失敗する

私はこのようなデータをポスト:

firstName null 

そして、検証ルールはこのようなものです:上記

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

はメッセージで"The XYZ must be a string."ような何かを失敗しました。私は理解していないことである:それはrequiredとして設定されていない場合

  1. はなぜ検証が失敗していますか? 値が の場合は無視し、エラーをスローしません。

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

  3. パラメータがまったく送信されないと、検証が失敗するのはなぜですか? は(すべてに掲載されていないlastNameのような)

は何かがLaravel 5.3検証に変わりましたか?

答えて

17

nullableルール追加:検証の下

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

フィールドはnullかもしれません。これは、nullの値を含むことができる文字列や整数などのプリミティブを検証する場合に特に便利です。

+0

パーフェクト。それはそれを修正した。ありがとうございました!あなたが私に許したら、私はあなたの答えを10分で受け入れます。簡単な質問ですが、この変更はlaravel 5.3で行われましたか?私は5.1でこの問題が発生しなかったし、検証ルールでnullableを追加したことはありません。 – Neel

+1

@Neelは5.2の 'nullable'ルールのコードを見ません。それは5.3のみです。だから私は彼らがバリデーションで何かを変えたと思う。 –

+1

それは理にかなっています。これを指摘してくれてありがとう@Alexey。とても役に立ちました! – Neel

関連する問題