[英]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.