LoginSignup
2
1

More than 5 years have passed since last update.

バリデーションルールのminとは?再勉強

Last updated at Posted at 2017-12-21

やりたいこと

凄く単純な事ですけど、バリデーションルールを使い、ユーザの年齢をチェックしたいことです。

UserRquest.php
public function rules()
{
    return [
        'age' => 'required|min:1|max:100',
    ];
}

ageの値は0で入力して、POSTすると、エラーメッセージが出ませんでした。
あれ?!!なんで?

いろいろ調べる、minは文字サイズの最小値として判定するかもしれません?

例:タイトルは1から100文字

public function rules()
{
    return [
        'title' => 'required|min:1|max:100',
    ];
}

で、試しすると、思った通りに実行することができました。

じゃあ、betweenを使えば、いけるなかと

UserRquest.php
public function rules()
{
    return [
        'age' => 'required|between:1,100',
    ];
}

ダメでした。
0を入力したのに、またバリデーションに合格

またいろいろ調べると、ドキュメントから

between:min,max
フィールドが指定された最小値と最大値の間のサイズであることをバリデートします。sizeルールと同様の判定方法で、文字列、数値、配列、ファイルが評価されます。

digits_between:最小値,最大値
フィールドが整数で、桁数が最小値から最大値の間であることをバリデートします。

ということでした。

最終のソースコード

UserRquest.php
public function rules()
{
    return [
        // 'age' => 'required|integer|between:1,100',
        'age' => 'required|digits_between:1,2',
    ];
}

結局、自分の勉強不足でした。
一生忘れないように以上のメモを。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1