我正在使用用戶登錄進行laravel項目。管理員可以創建新用戶並編輯現有用戶。我在更新用戶表單中有password
和passwordConfirm
字段。如果管理員在表單中放入新密碼,它應該檢查驗證並更新數據庫中的記錄。如果沒有,它不應該更改密碼(保留舊密碼),但更新其他用戶數據(如名字)。只有在設置了Laravel的情況下才更新密碼
如果我嘗試使用空的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',
];
}
它does not工作。在發送一個空的「密碼」和一個空的'passwordConfirm'字段之後,我得到了一個錯誤,說明'password'字段是必需的。 – Pengxer
@Pengxer從'password'移除'required'然後檢查。 – Ganesh