[Route: verify.notice] [URI: {language}/email/verify] 缺少必需参数
使用本地化后,我将 laravel 电子邮件验证添加到我的项目中。但是现在我遇到了 Route: verify.notice 缺少参数的问题。我知道我需要将 app()->getLocale() 参数添加/传递给路由,但找不到在哪里
我尝试搜索项目中的所有路由和 URL,还检查了 VerificationController.php 和 verify.blade.php。但是我没有找到缺少参数的路线。另外,我在网上找不到有同样问题的其他人。
网页.php
Route::group([
'prefix' => '{language}',
'where' => ['{language}' => '[a-Za-Z]{2}'],
'middleware' => 'SetLanguage',
],
function () {
Route::get('/', function () {
return view('welcome');
})->name('Welcome');
Auth::routes(['verify' => true]);
Route::get('/home', 'HomeController@index')->name('home');
Route::namespace('User')->group(function () {
Route::get('/profile', 'UserController@editProfile')->name('profile');
Route::put('profile', 'UserController@updateProfile');
});
Route::namespace('Admin')->group(function () {
Route::get('/dashboard', 'AdminController@index')->name('dashboard');
});
});
用户控制器
class UserController extends Controller
{
public function __construct()
{
$this->middleware('verified');
}
public function editProfile()
{
$user = User::where('id', Auth()->user()->id)->first();
return view('user.profile', compact('user'));
}
}
- - 编辑 - -
设置语言.php
namespace App\Http\Middleware;
use App;
use Closure;
class SetLanguage
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
App::setLocale($request->language);
return $next($request);
}
}