Подтвердите пароль на соответствие laravel - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь проверить, есть ли у пользователя совпадающие пароли, но я застреваю с этой ошибкой, когда пользователь отправляет несоответствующие пароли The GET method is not supported for this route. Supported methods: POST. Но если пароли совпадают, то это работает нормально, как я могу решить эту проблему?

Контроллер

public function resetPassword(Request $request, $token)
{

 $this->validate($request, [
     'password' => ['required','confirmed'],
]);

 $password = $request->password;
 $tokenData = DB::table('password_resets')
 ->where('token', $token)->first();

 $user = User::where('email', $tokenData->email)->first();
 if ( !$user ) return redirect()->to('home');

 $user->password = Hash::make($password);
 $user->update();


 Auth::login($user);


DB::table('password_resets')->where('email', $user->email)->delete();


return redirect()->to('/');
}

Лезвие

<form method="POST" action="{{ route('password.update',$token) }}">
@csrf

<div class="control">
        <input id="password" type="password" name="password" required>
</div>


 <div class="control">
        <input id="password-confirm" type="password" name="password_confirm" required>
</div>


<button type="submit">
    {{ __('Submit') }}
</button>

Маршрут

Route::post('reset-password/{token}', 'Auth\ForgotPasswordController@resetPassword')->name('password.update');

1 Ответ

0 голосов
/ 11 октября 2019

Вам нужно изменить это:

<input id="password-confirm" type="password" name="password_confirm" required>

С этим:

<input id="password-confirm" type="password" name="password_confirmation" required>

https://laravel.com/docs/5.8/validation#rule-confirmed

И также убедитесь, чтоу вас есть закрывающий тег form внизу </form> отсутствует в вашем представлении, так как вы поделились им. конечная точка и тип метода точно также POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...