为什么不接受Laravel的验证

时间:2018-09-30 11:26:14

标签: php laravel validation laravel-5

当我插入两个数字时,我对验证thl1有一些疑问 它
接受但它有min:10,当我使用'thl1'=> required|min:10而没有numeric时 它不接受2个或多个数字,但接受数据库中的字母 thl1是varchar(191)

public function updateProfile(Request $request){
    $user_id = Auth::user()->id;
    $this->validate($request, [
        'name' => 'required|string|max:25|min:3|alpha',
        'lastname' => 'required|string|max:25|min:3|alpha', 
        'username' => 'required|max:25|min:3|alpha_dash|unique:users,username,'.Auth::user()->id,
        'email' => 'required|string|email|max:55|unique:users,email,'.Auth::user()->id,
        'country' => 'required|min:3|alpha|max:30',
        'city' => 'required|min:3|alpha|max:30',
        'thl1' => 'required|min:10|numeric',
        'thl2' => 'min:10|numeric|nullable',
    ]);
}

validation.php

'thl1' => [
    'min' => 'To Τηλέφωνο 1  πρέπει να περιέχει τουλάχιστον 10 χαρακτήρες. ',
    'numeric' => 'To Τηλέφωνο 1  πρέπει να περιέχει μόνο αριθμούς. ',
    'required' => 'Το Τηλέφωνο 1 είναι υποχρεωτικό',
],

'thl2' => [
    'min' => 'To Τηλέφωνο 2  πρέπει να περιέχει τουλάχιστον 10 χαρακτήρες. ',
    'numeric' => 'To Τηλέφωνο 2  πρέπει να περιέχει μόνο αριθμούς. ',
]

1 个答案:

答案 0 :(得分:0)

不带min:10

numeric表示至少十个字符,因为它被视为字符串。字符串10是两个字符,因此不会被接受。 the zero-y-est zero that ever zeroed被接受,因为它超过十个字符。

添加numeric规则会告诉Laravel仅接受数字值,并且该值必须大于或等于数字值10。