Laravel Кошерный роутинг

fixxxer

К.О.
Партнер клуба
Попытка заиметь общий для всех роутов параметр/кусок урла для языка вызвала у меня обширную попоболь. Это правда так сложно, как я думаю, или делаю что-то не так?
PHP:
Route::group(
	['prefix' => '/{language_id}'],
	function () {
		Route::....
	}
);
Не?
 

artoodetoo

великий и ужасный
а можно в Laravel инициировать таблицу маршрутов "статическим" образом? ну массив на вход подать или имя .yml файла? (видимо без замыканий)

я понимаю, что всегда можно свой парсер навернуть, но может быть есть родное и легкое?
 

fixxxer

К.О.
Партнер клуба
Нету. А зачем? Оно и так вполне декларативненько выглядит. Но если очень хочется прикрутить - вообще оно частично основано на symfony/routing, должно быть не шибко сложно.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Проапдейчу:
кошерный способ:
PHP:
// определение глобального куска паттерна
Route::pattern('{language}', 'ru|en');

//Роут с глобальным паттерном
Route::get('{lanugage}/controller/action', function(){

  //получение параметра в любом месте кода
  echo Route::input('language'); // ru
});
 
Последнее редактирование:

AmdY

Пью пиво
Команда форума
лучше группировать
PHP:
Route::group(['prefix' => '{language}'], function() {
    Route::get(....)
});
 

AmdY

Пью пиво
Команда форума
тем, что в группу можно засунуть все роуты
PHP:
Route::group([
    'prefix' => '{language}',
    'before' => 'LocalizationFilter'
], function() {
    Route::get('', function() { return Input::get('lang'); });
    Route::controller('NewsController');
.....
});
в фильтре соотвественно
App::setLocale(Input::get('language'));
 
Сверху