刀片內部 - welcome.blade.php
。如何在Laravel 5.4中的Route :: group()中設置語言(locale)?
<div class="links">
<a href="https://laravel.com/docs">{{ __('passwords.reset') }}</a>
</div>
裏面web.php
。
如果我運行:
Route::get('/', function() {
return view('welcome');
});
我得到正確的歡迎刀片頁面,正確的翻譯。
另一條路線:
Route::get('welcome/{lang}', function ($lang) {
// echo $lang;
// dd(Lang::getLocale());
App::setLocale($lang);
//dd(Lang::getLocale());
return view('welcome');
//
});
如果我跑dd(Lang::getLocale());
我可以看到由URL http://testapp/welcome/en
發出了正確的語言。在這種情況下'en'
。如果我將dd()
置評,我可以在Laravel歡迎頁面看到正確的翻譯。
但是當我運行這段代碼:
Route::group(['prefix'=>'welcome'], function(){
Route::group(['prefix'=>'{lang}'], function ($lang){
//echo $lang;
//dd(Lang::getLocale());
App::setLocale($lang);
//dd(Lang::getLocale());
return view('welcome');
});
});
這是我有:
回聲$ LANG;給我ErrorException in web.php line 30: Object of class Illuminate\Routing\Router could not be converted to string
dd(Lang :: getLocale());給我'en'
。
App :: setLocale($ lang);給我404 Not Found
App :: setLocale($ lang); AND return view('welcome');給我404沒有找到
return view('welcome');給了我404未找到
,當我運行
App::setLocale($lang);
dd(Lang::getLocale());
return view('welcome');
我得到一個對象:
Router {#21 ▼
#events: Dispatcher {#23 ▶}
#container: Application {#3 ▶}
#routes: RouteCollection {#25 ▶}
#current: null
#currentRequest: null
#middleware: array:6 [▶]
#middlewareGroups: array:2 [▶]
+middlewarePriority: array:6 [▶]
#binders: []
#patterns: []
#groupStack: array:3 [▶]
}
所以,我的猜測是,Route::group(['prefix'=>'{lang}'...
返回一個對象而不是字符串。這就是它崩潰的原因。
如何使用Route::group()
解決此問題?
哎@Carlos它的工作原理。謝謝 – zwitterion