簡體   English   中英

Laravel 中路由參數的默認值

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM