Laravel сообщение об ошибке, если электронная почта не зарегистрирована во время сброса пароля (обновление с 5.6 до 5.7) - PullRequest
0 голосов
/ 16 октября 2018

Я недавно обновил свой проект laravel 5.6 до laravel 5.7, у меня возникла проблема сразу после того, как я перешел на laravel 5.7.когда я ввожу зарегистрированную электронную почту, электронная почта для сброса пароля успешно отправляется, и соответствующее сообщение о состоянии сеанса отображается на странице, но при вводе незарегистрированной электронной почты $errors->first('email') отображает passwords.user вместо отображения Мы не можем найти пользователя с таким адресом электронной почты. (предопределенное сообщение об ошибке laravel).

Как мне решить эту проблему ???

auth / passwords / email.blade.php:

<form action="{{ route('password.email') }}" class="forgot_Form text-center" method="POST" id="forgot_password">
            @csrf
            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                <input type="email" class="form-control email" name="email" id="email" placeholder="Email" value="{{ old('email') }}">
                @if ($errors->has('email'))
                    <span class="label label-danger">
                        <strong>{{ $errors->first('email') }}</strong>
                    </span>
                @endif
            </div>
            <button type="submit" class="btn submit-btn">
                Send Password Reset Link
            </button>
        </form>

ForgotPasswordController.php:

class ForgotPasswordController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Password Reset Controller
    |--------------------------------------------------------------------------
    |
    | This controller is responsible for handling password reset emails and
    | includes a trait which assists in sending these notifications from
    | your application to your users. Feel free to explore this trait.
    |
    */

    use SendsPasswordResetEmails;

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest');
    }
}

Результат:

enter image description here

Я использую встроенную аутентификацию laravel

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

По какой-то причине Laravel изменил ошибки проверки сброса пароля, чтобы использовать локализацию и переводы.

Чтобы решить вашу проблему:

  1. Создайте файл с именем passwords.php вresources/lang/en directory.
  2. В этом файле вы можете вернуть массив любого ключа, который следует после passwords. в сообщении проверки.

Например:

return [
    'user' => 'We can't find a user with that e-mail address.'
];
0 голосов
/ 22 декабря 2018

В контроллере входа введите следующий код:

 public function verifyUser($token)
    {
        $verifyUser = VerifyUser::where('token', $token)->first();
        if(isset($verifyUser) ){

            if(!$user->verified) {
                $verifyUser->verified = 1;
                $verifyUser->save();

                $status = "Your e-mail is verified. You can now login.";
            }else{
                $status = "Your e-mail is already verified. You can now login.";
            }
        }else{
            return redirect('/login')->with('warning', "Sorry your email cannot be identified.");
        }

        return redirect('/login')->with('status', $status);
    }
0 голосов
/ 16 октября 2018

Попробуйте переписать метод проверки, предоставленный признаком SendsPasswordResetEmails:

В ForgotPasswordController, добавьте этот метод:

use Illuminate\Http\Request;

...

protected function validateEmail(Request $request)
{
    $this->validate($request, 
        [
            'email' => 'required|email'
        ],[
            'email.email' => '<Your custom email error message>',
            'email.required' => '<Your custom email error message>'
        ]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...