我正在使用lareavel 5,我想创建一个from来更新用户信息
我的表单有4个字段 姓名,电子邮件,密码和确认密码
验证规则要求姓名,电子邮件有效且必填,所需密码,最小:6个字符并与确认匹配。
现在一切都还可以。
我想做的是:
当用户填写密码时,应填写并匹配确认字段。但是如果用户没有填写密码,则提交将通过并且没有验证错误并更新用户信息而无需更改密码。
验证码:
$user = Input::all();
if (trim($user['password']) != "") {
$rules = array(
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users,email,' . $id,
'password' => 'required|confirmed|min:6',
);
}
else{
$rules = array(
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users,email,' . $id,
);
}
更新用户信息代码:
$user = User::findOrFail($id);
$user->name = $data['name'];
$user->email = $data['email'];
if (trim($data['password']) != "") {
$user->password = bcrypt($data['password']);
}
$user->save();
我使用的任何其他最佳解决方案。
答案 0 :(得分:1)
您可以使用required_with
和same
验证规则。这使得两个字段相互依赖,并且两者都不需要填充。
'password' => 'required_with:password_confirmation|same:password_confirmation|min:6',
'password_confirmation' => 'required_with:password|min:6',