所以我在web.php 中创建了我的组
Route::redirect('/', '/it');
Route::group(['prefix' => '{locale}'], function () {
Route::get('/','HomeController@index');
Route::get('/business', 'BusinessViewController@index');
Route::post('business', 'BusinessViewController@store');
Route::get('/business/create', 'BusinessViewController@create');
Route::get('/business/{slug}', 'BusinessViewController@show');
Route::get('/contact', 'ContactController@index');
});
还创建了中间件SetLanguage.hp:
public function handle($request, Closure $next)
{
App::setLocale($request->segment(1));
URL::defaults(['locale' => $request->segment(1)]);
return $next($request);
}
我将中间件类添加到Kernal.php中的middlewareGroups-"web"现在,我应该如何在blade.php中添加href链接?
<a href="/business">{{__('common.list')}}</a>
这一行没有使用正确的语言。
我不想要会话,我希望该语言在url中:www.weburl.com.**/en/**something
所以我找到了解决方案,即路由链接所需的内容。就像这样:
<a href="{{ route('contact', app()->getLocale()) }}">{{__('common.contact_us')}}</a>
要做到这一点,你必须将名称添加到web.php中的Route中,如下所示:
Route::get('/contact', 'ContactController@index')->name('contact');
如果您不添加名称,它将显示Route not found。