Laravel如何为路由功能添加组前缀参数

时间:2015-12-25 09:33:11

标签: php laravel routes laravel-5

例如,我已经定义了这样的路线:

$locale = Request::segment(1);

Route::group(array('prefix' => $locale), function()
{
  Route::get('/about', ['as' => 'about', 'uses' => 'aboutController@index']);
}

我想为多个区域设置生成链接(en,de,es,...)。当我尝试提供像这样的前缀参数时

$link = route('about',['prefix' => 'de']);

我得到了这样的链接example.com/en/about?prefix=de 如何提供前缀参数来获得像example.com/de/about

这样的链接

4 个答案:

答案 0 :(得分:4)

你也许可以玩这样的东西。

Route::group(['prefix' => '{locale}'], function () {
    Route::get('about', ['as' => 'about', 'uses' => '....']);
});

route('about', 'en');  // http://yoursite/en/about
route('about', 'de');  // http://yoursite/de/about

答案 1 :(得分:0)

你可以这样做:

Route::group(['prefix'=>'de'],function(){
    Route::get('/about', [
       'as' => 'about',
       'uses' => 'aboutController@index'
    ]);

});

现在route('about')会提供如下链接:example.com/de/about

答案 2 :(得分:0)

你可以像

那样简单地实现它
Route::group(['prefix' => 'de'], function () {
    Route::get('about', ['as' => 'de.about', 'uses' => 'aboutController@index']);
});

你可以像使用

一样使用它
$link = route('de.about');

答案 3 :(得分:0)

试试这个:

   function getPerson(select) {
  var form = select.form;
  form.ref_person.value = select.options[select.selectedIndex].getAttribute('per');
  form.ear_person.value = select.value;
}

在提供链接时,您可以使用url helper函数而不是route:

<form>
  <fieldset><legend>Person and earning</legend>
  <label for="personSelect">Select a person
    <select name="choose" id="personSelect" onchange="getPerson(this)">
      <option per="3" value="0">1</option>
      <option per="9"  value="100">2</option>
      <option per="27"  value="500">3</option>
    </select>
  </label>
  <br>
  <label for="personNumber">No. Of person:
    <input type="text" name="ref_person"id="personNumber"></label>

  <label for="personEarning">Earning of person:
    <input type="text" name="ear_person" id="personEarning"></label>
  </fieldset>
</form>

如果您想要更通用,请在控制器/视图中使用它:

$locale = Request::segment(1);

Route::group(array('prefix' => $locale), function()
{
    Route::get('/about', ['as' => 'about', 'uses' => 'aboutController@index']);
}

其中$ locale可以是$link = url('de/about');