Laravel 密码验证失败,但必须确定。为什么?
Laravel Validation of password failed, when it must be ok. Why?
$validator = Validator::make($request->all(), [
'email' => 'required|min:9|max:50|email',
'password' => 'required|min:8|max:255|password'
]);
if ($validator->fails()) {
echo "Failed! Sorry :(";
Session::flash('error', $validator->messages()->first());
//return Redirect::back()->withErrors($validator);
}
else {...
但是如果我写
'password' => 'required|min:8|max:255'
验证通过,但是当我写的时候
'password' => 'required|min:8|max:255|password'
它没有通过,结果是“失败!抱歉 :(”。我的意思是我上面写的 echo 有效。
可能是什么问题?还是“密码”过大?我是 Laravel.
的新手
重要!数据库中的密码正在以散列形式保存。
password
验证规则根据当前已验证用户的密码检查验证中的字段。所以如果你只想检查它的长度,你不应该使用它。如果你想要更具体的验证规则,你可以使用正则表达式。例如,此规则检查给定的密码是否至少包含一个小写字母、一个大写字母和一个数字,并且它的长度不应小于 8:
'password' => 'required|min:8|regex:#(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])#'
$validator = Validator::make($request->all(), [
'email' => 'required|min:9|max:50|email',
'password' => 'required|min:8|max:255|password'
]);
if ($validator->fails()) {
echo "Failed! Sorry :(";
Session::flash('error', $validator->messages()->first());
//return Redirect::back()->withErrors($validator);
}
else {...
但是如果我写
'password' => 'required|min:8|max:255'
验证通过,但是当我写的时候
'password' => 'required|min:8|max:255|password'
它没有通过,结果是“失败!抱歉 :(”。我的意思是我上面写的 echo 有效。
可能是什么问题?还是“密码”过大?我是 Laravel.
重要!数据库中的密码正在以散列形式保存。
password
验证规则根据当前已验证用户的密码检查验证中的字段。所以如果你只想检查它的长度,你不应该使用它。如果你想要更具体的验证规则,你可以使用正则表达式。例如,此规则检查给定的密码是否至少包含一个小写字母、一个大写字母和一个数字,并且它的长度不应小于 8:
'password' => 'required|min:8|regex:#(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])#'