Приставка Laravel Language с дополнительными параметрами - PullRequest
4 голосов
/ 22 мая 2019

Быстрый вопрос, который уже несколько дней убивает меня. С Laravel я пытаюсь использовать разные языки.

английский и японский

Это работает в маршруте, как это.

Route::group([
    'prefix' => '{lang}',
    'where' => ['lang' => '(jp|en)'],
    'middleware' => 'Language'
], function() {
    Route::get('/blogs', 'BlogController@index')->name('main-blog');
    Route::get('/blog/{postId}/{postTitle}', 'BlogController@post'); 
});

Это работает, когда я захожу на страницу "/ блоги". Это меняется между языками.

Теперь, когда я захожу на страницу "/ blog / {postId} / {postTitle}", я больше не могу получить доступ к опубликованному параметру в моем контроллере.

Каким-то образом он показывает только параметр "lang". Какой будет правильный способ доступа к параметру при использовании префикса.

Когда я не использую префикс, он работает как шарм.

Мой контроллер;

public function post($blog_id, $blog_title) 
{
    // Do something
}

Помощь высоко ценится. Я уже несколько дней бьюсь головой об этом.

Wesley

1 Ответ

1 голос
/ 22 мая 2019

Вы используете параметр префикса для указания общих параметров для ваших сгруппированных маршрутов.Поэтому вам нужен еще один параметр $lang для этого контроллера:

public function post($lang, $blog_id, $blog_title) 
{
    // Do something
}

С параметром префикса маршруты выглядят так:

/{lang}/blogs
/{lang}/blog/{postId}/{postTitle}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...