在Laravel 5.4中,我希望使用基本url为locale添加前缀。当我运行php artisan serve然后我得到
notfoundhttpexception
。如果我手动放置http://localhost:8000/en,它确实有效。我现在想要什么,当我将运行php artisan服务时,它应该重定向到http://localhost:8000/en。
以下是路线档案:
Route::group( ['prefix' => App::getLocale() ], function()
{
Route::get('/', array('as' => 'home.index', 'uses' => 'HomeController@getIndex'));
});
答案 0 :(得分:0)
如果我理解你的问题,你需要使用这样的代码:
Route::group( ['prefix' => '{locale}' ], function()
{
Route::get('/', array('as' => 'home.index', 'uses' => 'HomeController@getIndex'));
//Setup locale based on request...
App::setLocale(Request::segment(1));
});
但我建议的更好的方法是使用区域设置,如:
if (in_array(Request::segment(1), ['en', 'fr'])) {
App::setLocale(Request::segment(1));
} else {
// set your default local if request having other then en OR fr
App::setLocale('en');
}
只需拨打路线:
Route::group( ['prefix' => '{locale}' ], function()
{
Route::get('/', array('as' => 'home.index', 'uses' => 'HomeController@getIndex'));
});
通过此代码,您可以动态地根据路由前缀设置区域设置。