значение по умолчанию для параметра маршрута в Laravel - PullRequest
0 голосов
/ 01 февраля 2020

Привет Мой веб-сайт должен быть многоязычным, и все в порядке, за исключением одного куска, например, маршрут моей домашней страницы выглядит следующим образом:

Route::get('/{lang}','Welcomecontroller@index');

, а в AppServiceProvider в методе загрузки я пишу следующую функцию:

public function boot()
{
 $request=Request::capture();
 Cookie::queue('lang',$request->lang);
 $lang=$request->has('lang') ? $request->lang : "fa";
 app()->setLocale($lang);
}

проблема моего кода в том, что мой код работает нормально, когда передается строка запроса, как? Lang = en, но при передаче параметра в маршруте, как get ('/ {lang}', 'WelcomeController@index' ); если параметр не существует, страница 404 показывает и всегда показывает fa lang, если параметр передан. Есть ли способ к этому методу, если параметр {lang} по умолчанию не существует, показывая, например, en lang и url, отображая как http://localhost: 8000 / против http://localhost: 8000 / en и как получить параметр {lang} из URL в этом методе.

Ответы [ 2 ]

1 голос
/ 01 февраля 2020

Вы можете сделать его обнуляемым вот так

Route::get('/{lang?}','Welcomecontroller@index');

А внутри вашего контроллера Welcomecontroller в функции index вы можете передать значение по умолчанию следующим образом:

public function index($lang = 'fa'){
// code
}

вы можете получить больше информации от https://laravel.com/docs/6.x/routing#parameters -option-параметров

0 голосов
/ 01 февраля 2020

вы можете использовать URL :: по умолчанию. также вы можете получить ответ от https://laravel.com/docs/5.6/urls#default -значений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...