[英]default value for route parameter in Laravel
嗨,我的网站必须是多语言的,除了一个之外,一切都很好,例如我的主页路线如下:
Route::get('/{lang}','Welcomecontroller@index');
在 AppServiceProvider 中的 boot 方法中,我编写了以下函数:
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以及如何获取 {该方法中来自 url 的 lang} 参数。
你可以让它像这样可以为空
Route::get('/{lang?}','Welcomecontroller@index');
在您的控制器Welcomecontroller
中的index
函数中,您可以传递这样的默认值:
public function index($lang = 'fa'){
// code
}
您可以从https://laravel.com/docs/6.x/routing#parameters-optional-parameters获取更多信息
您可以使用 URL::defaults。 你也可以从https://laravel.com/docs/5.6/urls#default-values得到你的答案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.