默认控制器键
Default controller key
我有一条如下所示的 laravel 路线:
Route::group(['namespace' => 'Aggregate\Customer\Controller\v1_0','middleware' => 'jwt.auth', 'prefix' => 'api/v1.0/{lang}'], function () {
Route::put('customer/{id}', 'CustomerController@update_customer');
});
我想 lang
路由 'prefix' => 'api/v1.0/{lang}'
上的键成为所有方法和所有控制器中的第一个全局变量,而无需在所有方法中手动添加,例如:
参见 $lang
public function add_address_book($lang,$user_id,AddressBookRequest $request)
{
我该怎么做?
一个选项是更新配置变量 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}', 'CustomerController@update_customer');
});
然后使用
echo App::getLocale();
您可以在 app/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}', 'CustomerController@update_customer');
});
然后在您的控制器(或任何地方)中您可以使用
echo app('lang');
我有一条如下所示的 laravel 路线:
Route::group(['namespace' => 'Aggregate\Customer\Controller\v1_0','middleware' => 'jwt.auth', 'prefix' => 'api/v1.0/{lang}'], function () {
Route::put('customer/{id}', 'CustomerController@update_customer');
});
我想 lang
路由 'prefix' => 'api/v1.0/{lang}'
上的键成为所有方法和所有控制器中的第一个全局变量,而无需在所有方法中手动添加,例如:
参见 $lang
public function add_address_book($lang,$user_id,AddressBookRequest $request)
{
我该怎么做?
一个选项是更新配置变量 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}', 'CustomerController@update_customer');
});
然后使用
echo App::getLocale();
您可以在 app/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}', 'CustomerController@update_customer');
});
然后在您的控制器(或任何地方)中您可以使用
echo app('lang');