あなたが実際にあなたが例えば、同じ結果を得るために、独自の関数を書くことができ、これを達成するために、デフォルトのパスワードのコントローラを使用する必要はありません。
public function postUpdatePassword() {
$user = Auth::user();
$password = $this->request->only([
'current_password', 'new_password', 'new_password_confirmation'
]);
$validator = Validator::make($password, [
'current_password' => 'required|current_password_match',
'new_password' => 'required|min:6|confirmed',
]);
if ($validator->fails())
return back()
->withErrors($validator)
->withInput();
$updated = $user->update([ 'password' => bcrypt($password['new_password']) ]);
if($updated)
return back()->with('success', 1);
return back()->with('success', 0);
}
あなたは、私は新しい登録見ることができるようにカスタム検証ルール新しいpassowrdは古いものと一致した場合にだけ、「アプリ/プロバイダ/ AppServiceProvider.php」に移動し、ブート機能に次の行を追加し、ルールを登録するには、チェックする:
今
Validator::extend('current_password_match', function($attribute, $value, $parameters, $validator) {
return Hash::check($value, Auth::user()->password);
});
検証ルールは機能しますが、エラーメッセージが表示されず、エラーメッセージが追加されます作成したばかりの新しいルールにあなたは「リソース/ LANG/EN/validation.php」に次の行を変更する必要があります。それだけです
'custom' => [
'current_password' => [
'current_password_match' => 'Current password is incorrect.',
],
],
を、今、あなたはあなたの現在のユーザーのパスワードを変更するには、この機能を使用することができます:)
今私はちょうどフィールドを持つフォームとビューを必要とするので、よさそうですcurrent_passoword、new_password、new_password_confirmを入力して、その関数に送信してください。 – nameless
まさにそれが今あなたがしなければならない唯一のものです。 –
は働いてくれました、ありがとうございます:) – nameless