zvermafia
@zvermafia
WebDev

Как автоматический добавлять опциональный параметр для каждой генерируемый URL в Laravel 5?

У меня есть такой route:
Route::group([
	'prefix'    => '{lang?}',
	'as'        => 'frontend.',
	'namespace' => 'Frontend'
],
function ()
{
    Route::get('articles', [
    	'as'   => 'articles',
    	'uses' => 'ArticlesController@index'
    ]);
});

Теперь когда визывается хелпер route(), например так route('frontend.articles') мне надо чтобы он вернул такой url `http://somesite.ru/articles` если не было префиксного параметра, а если было (например префикс = 'en') то тогда такой url `http://somesite.ru/en/articles`.

Как этого добится?

UPD: То есть я не хочу всегда вручную указывать префиксной параметр в хелпере route('frontend.articles', ['prefix' => App::getLocale()]).
  • Вопрос задан
  • 293 просмотра
Решения вопроса 1
zvermafia
@zvermafia Автор вопроса
WebDev
Использовал пакет mcamara/laravel-localization там оказывается это уже реализовано...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
я бы сгенерировал в моделе урл типо
public function route(array $params = [], $absolute_url = true) {
        $params = array_diff($params, ['', null]);

        return route('frontend.articles', array_replace($params, ['prefix' => App::getLocale()]), $absolute_url);
}


и вызывать $article->route(другие параметры)
ну или ваще указать в базовой модели, и уже все модели будут иметь параметр ->route(..)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы