2016-10-08 5 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'); 
}); 

И я хочу lang ключ на пути 'prefix' => 'api/v1.0/{lang}' быть первой переменной глобально во всех методах и во всех контроллерах без ручной добавлен во всех методах, таких как:
См $ Ланг

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

Как я могу это сделать?

+0

, пожалуйста, помогите мне с друзьями – amirali

ответ

0

Один из вариантов - это обновить конфигурацию 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');