public function update(User $user, Request $request) { $this->validate($request, [ 'name' => 'required|max:50', 'password' => 'nullable|confirmed|min:6' ]); $data = []; $data['name'] = $request->name; if ($request->password) { $data['password'] = bcrypt($request->password); } $user->update($data); session()->flash('success', '个人资料更新成功!'); return redirect()->route('users.show', $user); }
户密码验证的 required
规则换成 nullable
,这意味着当用户提供空白密码时也会通过验证。如果用户传入password值,则进行confirmed验证。即对传入的 password
进行判断,当其值不为空时才将其赋值给 data
,避免将空白密码保存到数据库中。