【问题标题】:Default controller key默认控制器键
【发布时间】:2017-02-17 07:55:23
【问题描述】:

我有一个如下的 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)
{

我该怎么做?

【问题讨论】:

  • 请朋友们帮帮我

标签: laravel laravel-5.2 laravel-routing


【解决方案1】:

一个选项是更新配置变量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');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 2011-02-08
    • 2015-12-01
    相关资源
    最近更新 更多