【问题标题】:Missing required parameters for [Route: password.reset] [URI: {locale}/password/reset/{token}][Route: password.reset] [URI: {locale}/password/reset/{token}] 缺少必需的参数
【发布时间】:2020-01-18 14:51:32
【问题描述】:

下面列出的是已进行更改的代码清单。授权和注册系统运行良好。唯一的问题是重置密码。

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>
...
<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

【问题讨论】:

    标签: laravel-6


    【解决方案1】:

    为了使错误不出现在所描述的方案中,将前缀参数设为可选(?)就足够了,并且还使用正则表达式列出了语言,如下所示:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-01
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2022-06-22
      • 2022-01-16
      • 2021-03-10
      • 2020-08-17
      相关资源
      最近更新 更多