Par exemple, j'ai défini des itinéraires comme celui-ci:

$locale = Request::segment(1);

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

Je souhaite générer des liens pour plusieurs locales (en, de, es, ...). Quand j'essaye de fournir un paramètre de préfixe comme celui-ci

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

J'ai un lien comme celui-ci example.com/en/about?prefix=de Comment fournir un paramètre de préfixe pour obtenir un lien comme celui-ci example.com/de/about

5
Kalanj Djordje Djordje 25 déc. 2015 à 12:33

4 réponses

Meilleure réponse

Vous pouvez peut-être jouer avec quelque chose comme ça.

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
9
lagbox 25 déc. 2015 à 16:16

Essaye ça:

$locale = Request::segment(1);

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

Et tout en fournissant un lien, vous pouvez utiliser la fonction d'assistance d'url au lieu de route:

$link = url('de/about');

Si vous voulez plus générique, utilisez ceci dans controller / view:

 $link = url($locale.'/about');

Où $ locale pourrait être en,de,etc

0
Vikas 25 déc. 2015 à 11:07

Vous pouvez simplement y parvenir comme

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

Et vous pouvez l'utiliser comme

$link = route('de.about');
0
Narendrasingh Sisodia 25 déc. 2015 à 09:44

Vous pouvez faire comme ça:

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

});

Maintenant route('about') donnera un lien comme celui-ci: example.com/de/about

0
Kiran Subedi 25 déc. 2015 à 09:49