【问题标题】:Laravel route where locale is sometimes not the first in the URLLaravel 路由,其中​​语言环境有时不是 URL 中的第一个
【发布时间】:2017-10-10 10:17:53
【问题描述】:

我已经设置了语言环境。 url 通常应以http://example.com/en/...../.....

开头

但对于某些(不是全部!)路线,我想在语言环境前添加一些内容。 例如http://example.com/api/settings/en/...../.....

使用标准的 LaravelLocalization 是否可以实现,或者有什么解决方案?

提前谢谢

编辑: 我的路由文件都以

之类的开头
    // Index page
    Route::get('/', [
        'as' => 'index',
        function () {
            return view('index');
        }, ]);

    // Campaign mode
    Route::group([
        'prefix' => 'campaign',
        'as' 

所以路由本身没有设置语言

【问题讨论】:

  • 请在此处添加您的路线代码。

标签: php laravel routing localization


【解决方案1】:

将您的 API 路由放在路由语言组的上方

$router->group(['prefix'=>'api'], function($router)
{
    $router->get('/', 'APIController@index');
});

// This would product api/

$router->group(['prefix'=>'{lang?}'], function($router)
{
    $router->get('home', 'HomeController@index');
});

// This would produce /en/home

您的路线当然会有所不同,但这就是要点

【讨论】:

  • 问题是,我什至没有在我的路由文件中设置语言,它们都以 // Index page Route::get('/', [ 'as' => 'index ', function () { return view('index'); }, ]); // 竞选模式 Route::group([ 'prefix' => 'campaign', 例如所以我猜它必须由 laravel 自己设置
  • 也许你应该重新考虑你的路线是如何布局的?
猜你喜欢
  • 2015-10-26
  • 2014-03-31
  • 2020-01-18
  • 2020-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-09
  • 2012-11-25
相关资源
最近更新 更多