Laravel - 缺少 [Route: reset-password.index] 所需的参数
Laravel - Missing required parameters for [Route: reset-password.index]
我只是 Laravel 的新手,所以在这些现成的项目上工作仍然不是很好,
无论如何,当用户尝试重置密码时,它会失败显示:
~/public_html$ php artisan queue:work
[2021-05-29 19:52:02][182577] Processing: App\Mail\Core\ResetPassword
[2021-05-29 19:52:02][182577] Failed: App\Mail\Core\ResetPassword
当我检查日志文件时,我发现了这个错误:
[previous exception] [object] (Illuminate\Routing\Exceptions\UrlGenerationException(code: 0): Missing required parameters for [Route: reset-password.index] [URI: reset-password/{user}]. at /home/user/public_html/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php:17)
作为一个新手,我不知道该怎么做,搜索了很多但没有机会。
这是我的路线:
Route::get('reset-password/{user}', [AuthController::class, 'resetPassword'])
28: ->name('reset-password.index');
29: Route::post('reset-password/{user}/update', [AuthController::class, 'updatePassword'])
30: ->name('reset-password.update');
这是我的 URI:
@component('mail::button', ['url' => url()->temporarySignedRoute('reset-password.index', now()->addMinutes(30), ['id' => $user->id])])
{{ __('Reset Password') }}
@endcomponent
这是我在 AuthController 中的 resetPassword 函数:
public function resetPassword(Request $request, User $user): View
{
$data = $this->service->resetPassword($request, $user->id);
return view('core.no_header_pages.reset_password', $data);
}
这是我的重置密码@服务:
public function resetPassword(Request $request, $id)
{
abort_unless($request->hasValidSignature(), 401, 'Invalid Request.');
$passwordResetLink = url()->signedRoute('reset-password.update', ['user' => $id]);
return [
'id' => $id,
'passwordResetLink' => $passwordResetLink
];
}
有机会吗?
您的 reset-password
路由参数是 user
但您在组件中使用 id
。换成 user
@component('mail::button', [
'url' => url()->temporarySignedRoute('reset-password.index', now()->addMinutes(30),
['user' => $user->id])]) // passing an id but with a named parameter of `user`
{{ __('Reset Password') }}
@endcomponent
我只是 Laravel 的新手,所以在这些现成的项目上工作仍然不是很好, 无论如何,当用户尝试重置密码时,它会失败显示:
~/public_html$ php artisan queue:work
[2021-05-29 19:52:02][182577] Processing: App\Mail\Core\ResetPassword
[2021-05-29 19:52:02][182577] Failed: App\Mail\Core\ResetPassword
当我检查日志文件时,我发现了这个错误:
[previous exception] [object] (Illuminate\Routing\Exceptions\UrlGenerationException(code: 0): Missing required parameters for [Route: reset-password.index] [URI: reset-password/{user}]. at /home/user/public_html/vendor/laravel/framework/src/Illuminate/Routing/Exceptions/UrlGenerationException.php:17)
作为一个新手,我不知道该怎么做,搜索了很多但没有机会。
这是我的路线:
Route::get('reset-password/{user}', [AuthController::class, 'resetPassword'])
28: ->name('reset-password.index');
29: Route::post('reset-password/{user}/update', [AuthController::class, 'updatePassword'])
30: ->name('reset-password.update');
这是我的 URI:
@component('mail::button', ['url' => url()->temporarySignedRoute('reset-password.index', now()->addMinutes(30), ['id' => $user->id])])
{{ __('Reset Password') }}
@endcomponent
这是我在 AuthController 中的 resetPassword 函数:
public function resetPassword(Request $request, User $user): View
{
$data = $this->service->resetPassword($request, $user->id);
return view('core.no_header_pages.reset_password', $data);
}
这是我的重置密码@服务:
public function resetPassword(Request $request, $id)
{
abort_unless($request->hasValidSignature(), 401, 'Invalid Request.');
$passwordResetLink = url()->signedRoute('reset-password.update', ['user' => $id]);
return [
'id' => $id,
'passwordResetLink' => $passwordResetLink
];
}
有机会吗?
您的 reset-password
路由参数是 user
但您在组件中使用 id
。换成 user
@component('mail::button', [
'url' => url()->temporarySignedRoute('reset-password.index', now()->addMinutes(30),
['user' => $user->id])]) // passing an id but with a named parameter of `user`
{{ __('Reset Password') }}
@endcomponent