[路由:password.reset] [URI:重置密码/{token}] 缺少必需的参数
Missing required parameter for [Route: password.reset] [URI: reset-password/{token}]
我正在尝试实施强化身份验证。
当我想重置密码时,它会打开路由:重置密码。当我打开 link 时,它给我一条错误消息:
[路由:password.reset] [URI:重置密码/{token}] 缺少必需的参数
我正在使用以下版本:
php 8.0.2
Laravel 框架 8.32.1
npm 6.17.11
有人能帮我解决这个问题吗?
FortifyServiceProvider.php:
Fortify::loginView(function(){
return view( view: 'auth.login');
});
Fortify::registerView(function(){
return view( view: 'auth.register');
});
Fortify::requestPasswordResetLinkView(function(){
return view( view: 'auth.forgot-password');
});
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
重置-password.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if ($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
<form method="POST" action="{{ route('password.reset') }}">
@csrf
<input type="hidden" name="token" value="{{$request->route('token')}}">
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password" placeholder="Password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Update">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
忘了-password.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if ($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
@if(session('status'))
{{session('status')}}
@endif
<form method="POST" action="{{ route('password.request') }}">
@csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Reset">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
register.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Register a new account</p>
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group">
<label for="name" class="sr-only">Name</label>
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus placeholder="Name">
</div>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password" placeholder="Password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="register" id="register" class="btn btn-block login-btn mb-4" type="submit" value="Register">
</form>
<a href="#!" class="forgot-password-link">Forgot password?</a>
<p class="login-card-footer-text">Alredy have an account? <a href="{{ route('login') }}" class="text-reset">Login here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
</div>
@endsection
login.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Sign into your account</p>
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control" placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input type="password" name="password" id="password" class="form-control" placeholder="***********">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Login">
</form>
<a href="#!" class="forgot-password-link">Forgot password?</a>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}" class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
template.blade.php
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<main class="d-flex align-items-center min-vh-100 py-3 py-md-0">
@yield('content')
</main>
</div>
</body>
</html>
在 reset-password.blade.php
中将 route password.reset
更改为 password. update
,如下所示
<form method="POST" action="{{ route('password.update') }}">
还有这个
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
至此
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{$request->email}}">
您在 request->email
中遗漏了 $
将此 ['token' => $request]
更改为 ['request' => $request]
,如下所示
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
希望有用
我正在尝试实施强化身份验证。 当我想重置密码时,它会打开路由:重置密码。当我打开 link 时,它给我一条错误消息:
[路由:password.reset] [URI:重置密码/{token}] 缺少必需的参数
我正在使用以下版本: php 8.0.2 Laravel 框架 8.32.1 npm 6.17.11
有人能帮我解决这个问题吗?
FortifyServiceProvider.php:
Fortify::loginView(function(){
return view( view: 'auth.login');
});
Fortify::registerView(function(){
return view( view: 'auth.register');
});
Fortify::requestPasswordResetLinkView(function(){
return view( view: 'auth.forgot-password');
});
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
重置-password.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if ($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
<form method="POST" action="{{ route('password.reset') }}">
@csrf
<input type="hidden" name="token" value="{{$request->route('token')}}">
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password" placeholder="Password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Update">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
忘了-password.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if ($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Reset password</p>
@if(session('status'))
{{session('status')}}
@endif
<form method="POST" action="{{ route('password.request') }}">
@csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Reset">
</form>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}"
class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
register.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Register a new account</p>
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group">
<label for="name" class="sr-only">Name</label>
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus placeholder="Name">
</div>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password" placeholder="Password">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password" placeholder="Confirm password">
</div>
<input name="register" id="register" class="btn btn-block login-btn mb-4" type="submit" value="Register">
</form>
<a href="#!" class="forgot-password-link">Forgot password?</a>
<p class="login-card-footer-text">Alredy have an account? <a href="{{ route('login') }}" class="text-reset">Login here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
</div>
@endsection
login.blade.php
@extends('template')
@section('content')
<div class="container">
<div class="card login-card">
<div class="row no-gutters">
<div class="col-md-5">
<img src="/img/login.jpg" alt="login" class="login-card-img">
</div>
<div class="col-md-7">
@if($errors->any())
@foreach ($errors->all() as $error)
<h1>{{ $error }}</h1>
@endforeach
@endif
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
<div class="card-body">
<div class="brand-wrapper">
<img src="/img/logo.png" alt="logo" class="logo">
</div>
<p class="login-card-description">Sign into your account</p>
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group">
<label for="email" class="sr-only">Email</label>
<input type="email" name="email" id="email" class="form-control" placeholder="Email address">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group mb-4">
<label for="password" class="sr-only">Password</label>
<input type="password" name="password" id="password" class="form-control" placeholder="***********">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<input name="login" id="login" class="btn btn-block login-btn mb-4" type="submit" value="Login">
</form>
<a href="#!" class="forgot-password-link">Forgot password?</a>
<p class="login-card-footer-text">Don't have an account? <a href="{{ route('register') }}" class="text-reset">Register here</a></p>
<nav class="login-card-footer-nav">
<a href="#!">Terms of use.</a>
<a href="#!">Privacy policy</a>
</nav>
</div>
</div>
</div>
</div>
@endsection
template.blade.php
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
<!-- Styles -->
<link href="{{ asset('css/app.css') }}" rel="stylesheet">
</head>
<body>
<div id="app">
<main class="d-flex align-items-center min-vh-100 py-3 py-md-0">
@yield('content')
</main>
</div>
</body>
</html>
在 reset-password.blade.php
中将 route password.reset
更改为 password. update
,如下所示
<form method="POST" action="{{ route('password.update') }}">
还有这个
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{request->email}}">
至此
<input type="email" name="email" id="email" class="form-control"
placeholder="Email address" value="{{$request->email}}">
您在 request->email
$
将此 ['token' => $request]
更改为 ['request' => $request]
,如下所示
Fortify::resetPasswordView(function($request){
return view('auth.reset-password', ['token' => $request]);
});
希望有用