我一直在使用它来编辑用户帐户信息:
$this->validate($request, [
'password' => 'min:6',
'password_confirmation' => 'required_with:password|same:password|min:6'
]);
这在Laravel 5.2应用程序中运行良好,但在5.4应用程序中不起作用。
这里有什么问题,或者如果设置了password
或password
字段,只需要password_confirmation
的正确方法是什么?
答案 0 :(得分:50)
您可以使用confirmed验证规则。
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'required|confirmed|min:6',
]);
答案 1 :(得分:19)
尝试这样做,它对我有用:
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'min:6|required_with:password_confirmation|same:password_confirmation',
'password_confirmation' => 'min:6'
]);`
似乎规则总是对对中的第一个输入进行验证...
答案 2 :(得分:7)
尝试确认并且没有password_confirmation规则:
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'vat_number' => 'max:13',
'password' => 'confirmed|min:6',
]);
答案 3 :(得分:3)
试试这个:
'password' => 'required|min:6|confirmed',
'password_confirmation' => 'required|min:6'
答案 4 :(得分:2)
我已经用过这种方式..工作正常!
$inputs = request()->validate([
'name' => 'required | min:6 | max: 20',
'email' => 'required',
'password' => 'required| min:4| max:7 |confirmed',
'password_confirmation' => 'required| min:4'
]);
答案 5 :(得分:1)
我以这种方式使用。工作正常!
$rules = [
'password' => [
'required',
'string',
'min:6',
'max:12', // must be at least 8 characters in length
],
'confirm_password' => 'required|same:password|min:6'
];
答案 6 :(得分:0)
这应该足够:
$this->validate($request, [
'password' => 'nullable,min:6,confirmed',
]);
将密码设置为可选,但是如果存在,则需要匹配的password_confirmation
答案 7 :(得分:0)
您可以这样使用来检查密码至少包含 1 个大写字母、1 个小写字母、1 个数字和 1 个特殊字符:
$this->validate($request, [
'name' => 'required|min:3|max:50',
'email' => 'email',
'password' => 'required|confirmed|min:6|regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{6,}$/']);