【发布时间】:2020-04-08 19:29:54
【问题描述】:
缺少 [Route: verification.notice] [URI: {language}/email/verify] 所需的参数
使用本地化后,我将 laravel 电子邮件验证添加到我的项目中。 但是现在我遇到了 Route: verify.notice 缺少参数的问题。我知道我需要将 app()->getLocale() 参数添加/传递给路由,但找不到位置
我尝试搜索项目中的所有路由和 URL,还检查了 VerificationController.php 和 verify.blade.php。但是我没有找到缺少参数的路线。另外,我在网上找不到有同样问题的其他人。
web.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'));
}
}
----编辑----
SetLanguage.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);
}
}
【问题讨论】:
-
显示您的
SetLanguage中间件代码。 -
@DilipHirapara 我添加了我的 SetLanguage.php 文件
-
@400028588 你是怎么解决这个问题的?
标签: laravel-blade laravel-6 laravel-authentication laravel-localization