Отсутствуют обязательные параметры для [Route: password.reset] [URI: {locale} / password / reset / {token}] - PullRequest
0 голосов
/ 18 января 2020

Ниже перечислены списки кодов, в которые были внесены изменения. Система авторизации и регистрации работает хорошо. Единственная проблема - сброс пароля.

web. php

Route::get('/', function() {
    return view('index');
});

Route::group([
    'prefix' => '{locale}',
    'where' => ['locale' => '[a-zA-Z]{2}'],
    'middleware' => 'setlocale'
], function () {
    Route::get('/', function () {
        return view('index');
    });
    Auth::routes();
});

head

<head>
...
<meta name="csrf-token" content="{{ csrf_token() }}">
...
</head>

email.blade. php

@extends('layouts._main')
@section('content')
<section class="main_section">
    <div class="auth_wrapper">
        <div class="form_container">

            @if (session('status'))
                <div class="alert alert-success" role="alert">
                    {{ session('status') }}
                </div>
            @endif

            <form method="POST" action="{{ route('password.email', app()->getLocale()) }}" class="auth_login">

                @csrf

                <div class="auth_form_titles">
                    <h1 class="auth_form_title">@lang('forgot.caption')</h1>
                </div>
                <div class="auth_form_text">@lang('forgot.text')</div>

                <input id="email" type="email" name="email" 
                    @if($errors->has('email')) class="fields_error" @else class="fields" @endif 
                    placeholder="@lang('forgot.email_field')" title="@lang('forgot.email_field')" 
                    value="{{ old('email') }}" required autocomplete="email" autofocus>
                    @error('email')
                        <span class="validation_error">{{ $message }}</span>
                    @enderror

                <button type="submit" class="buttons button_login">@lang('forgot.button2')</button>
            </form>
        </div>
    </div>
</section>
@endsection

Если сейчас я нажму на кнопку «Отправить ссылку для сброса пароля», я получу ошибку.

результат

Illuminate\Routing\Exceptions\UrlGenerationException
Missing required parameters for [Route: password.reset] [URI: {locale}/password/reset/{token}].

Скажите, пожалуйста, как решить эту проблему.


Это общедоступная ошибка: https://flareapp.io/share/lm2GgDPx#F61

1 Ответ

0 голосов
/ 19 января 2020

Чтобы ошибка не появилась в описанной схеме, достаточно сделать параметр префикса необязательным (?), А также перечислить языки с регулярным выражением, как показано в листинге ниже:

Route::group([
    'prefix' => '{locale?}',
    'where' => ['locale' => '^ru|en$'],
    'middleware' => 'setlocale'
], function () {
    Route::get('/', function() {
        return view('index');
    });
    Auth::routes();
});
...