Laravelの「numeric」と「max」バリデーションのエラー。文字長と数量が変化して起こる

こんにちは。YOSHITAKA(@YOSHITA19704216)です。

初心者
数字のバリデーションがおかしくなったんですけど、何が原因ですか?

よしたか
学んだことをアウトプットしていきます。

 

この記事を読むことで
  • numericとmaxを使ったエラーの謎が解決します。

Contents

 Laravelの「numeric」と「max」バリデーションのエラー解決方法

解決方法

数字の書き方を変える

‘number’ => ‘numeric | max:5’

‘number’ => ‘numeric | max:99999’に変更

エラーの原因

以下のようにバリデーションをかけていたんですが、エラーが出てしまう状況でした。

バリデーションの謎
  • ‘○○’ => ‘max:5’ は エラーが出ない
  • ‘○○’ => ‘numeric | max:5’ だと エラーが出る。

実際に単体テストを行った結果、5桁未満の数字を入れてもエラーが起こる。

考え方(数量と文字長

数量と文字長の違いを理解しておく必要があった。

組み合わせによって変化が起こる
  • 数量5までのバリデーション   ⇒簡単すると、1~5の数字
  • 文字長5文字のバリデーション ⇒簡単にすると、字数 (5桁までOK)

組み合わせによって変化するようです。

 

 

詳しい話が公式ドキュメントに載っているようなので、知りたい方は参照してください。

Laravelが定義するnumericRuleを持っていることが関係しているようです。

抜粋

/**
* The numeric related validation rules.
*
* @var array
*/
protected $numericRules = [‘Numeric’, ‘Integer’];

numeric か integer かを一緒に定義してあげれば数量として、勝手に判断してくれる。

ない場合は、文字長で処理してくれるようです。

まとめ

 

今回はバリデーションで1時間以上悩んだ内容の解決方法についてお伝えしました。

※プログラミングは習得中ですので、参考程度に記事を読んでください。

あなたは「Web集客」に限界を感じていませんか?

サイトをただ作るだけで満足ですか?

あなたのサービスやコンテンツはとっても有益なものがたくさんあります。

良いコンテンツも埋もれてしまっては全く意味がありません。

正しい知識と実践で、SEO対策はもちろん、ユーザビリティーを考えたサイトを作りませんか?

私と歩めばWebマーケティング知識とWordPressスキルが定着し、サイト回遊率、再訪問がアップします。

しかも、これだけでは終わりません!!

その先の「攻めのメディア」と組み合わせ、あなたのサービスを広めて売上を伸ばしていきます。

サイトを育てて、長い間愛されることのできるWordPressサイトからの集客導線(ゴールデンルート)を一緒に作りませんか?

↓ ↓ ↓ ↓ ↓ ↓ 

おすすめの記事