【发布时间】:2017-12-28 09:23:30
【问题描述】:
我正在使用用户登录的 laravel 项目。管理员可以创建新用户和编辑现有用户。我在更新用户表单中有一个password 和一个passwordConfirm 字段。如果管理员在表单中输入新密码,它应该检查验证并更新数据库中的记录。如果没有,它不应该更改密码(保留旧密码),而是更新其他用户数据(如名字)。
如果我尝试发送带有空 password 和 passwordConfirm 字段的表单,它不会验证。我收到一个验证错误,密码必须是一个字符串,并且长度至少为 6 个字符,但我不知道为什么。我的更新函数的第一行似乎将被忽略。
UserController.php
public function update(User $user, UserRequest $request) {
$data = $request->has('password') ? $request->all() : $request->except(['password', 'passwordConfirm']);
$user->update($data);
return redirect('/users');
}
UserRequest.php
public function rules() {
return [
'firstname' => 'required|string|max:255',
'lastname' => 'required|string|max:255',
'email' => 'required|string|email|max:255',
'password' => 'string|min:6',
'passwordConfirm' => 'required_with:password|same:password',
];
}
【问题讨论】:
标签: php laravel validation