laravel 5.6请求重复的URL参数

时间:2018-04-05 17:46:55

标签: laravel url request

我正在进行语言环境翻译,我正在尝试从以下网址获取参数enhttp://localhost/public/en

我使用{{Request::segment(1)}}获取en。但是,当我将其重新插入<a href="{{Request::segment(1)}}/training">时,网址将变为:

http://localhost/public/en/en/trainingen重复)

但是,我想将网址设为

http://localhost/public/en/training

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

使用Route参数可以更加优雅地解决这个问题。

所以在web.phproutes.php,如果您正在运行真正的老Laravel),您可以指定一个参数:

Route::get('/public/{language}/training', 'PublicController@training');

现在路线中的en将作为控制器的参数提供:

class PublicController extends ApplicationController {
   public function training(Request $request, $language) {
      return view('training', ['language' => $language]);
   }
}

现在,您可以访问视图或控制器中的en值。

您可以使用链接助手来构建链接:

<a href="{{ action('PublicController@training', ['language' => 'en']); }}">Training - English</a>

来源:

  1. https://laravel.com/docs/5.6/urls#generating-basic-urls
  2. https://laravel.com/docs/5.6/routing#required-parameters