2016-10-08 214 views
3

我有一個laravel路線象下面這樣:默認控制器密鑰

Route::group(['namespace' => 'Aggregate\Customer\Controller\v1_0','middleware' => 'jwt.auth', 'prefix' => 'api/v1.0/{lang}'], function() { 
    Route::put('customer/{id}', '[email protected]_customer'); 
}); 

,我想在路線'prefix' => 'api/v1.0/{lang}'lang鍵全局是第一可變於所有方法和在所有控制器無需人工像所有方法加入:
$ LANG

public function add_address_book($lang,$user_id,AddressBookRequest $request) 
{ 

我怎樣才能做到這一點?

+0

請幫我朋友 – amirali

回答

0

一個選項是更新config var app.locale

Route::group([ 
    'namespace' => 'Aggregate\Customer\Controller\v1_0', 
    'middleware' => 'jwt.auth', 
    'prefix' => 'api/v1.0/{lang}' 
], function() { 
    App::setLocale(app('request')->segment(3)); 

    Route::put('customer/{id}', '[email protected]_customer'); 
}); 

然後使用

echo App::getLocale(); 

您可以設置默認的語言環境和應用程序的備用的區域/ config.php文件

另一個選擇是設立一個單獨的應用程序容器

Route::group([ 
    'namespace' => 'Aggregate\Customer\Controller\v1_0', 
    'middleware' => 'jwt.auth', 
    'prefix' => 'api/v1.0/{lang}' 
], function() { 
    app()->singleton('lang', function() { 
    return app('request')->segment(3); 
    }); 

    Route::put('customer/{id}', '[email protected]_customer'); 
}); 

然後在你的控制器(或任何地方),你可以使用

echo app('lang');