2017-04-11 40 views
1

我在學習laravel 5.4。我知道有一個新的全局中間件將請求輸入空字符串轉換爲空。但我有一個問題,網址如下:http://localhost/choosePlan?type=1。我在控制器操作中獲得類型字段值。如果沒有類型請求輸入提交或值爲空,我想默認類型值設置爲1。所以,在我的控制器動作,我寫的是這樣的:Laravel 5.4輸入空缺省值

$type = $request->input('type',1); 

只有我訪問http://localhost/choosePlan我可以獲取類型默認值。如果我訪問像http://localhost/choosePlan?typehttp://localhost/choosePlan?type=我仍然得到類型爲null。所以我認爲輸入法的默認值只有在請求正文中沒有提交名稱時才能正常工作?我該如何解決上述問題?像確定類型爲空,然後將其設置爲默認值1?我無法禁用ConvertEmptyStringsToNull中間件,因爲它在其他地方使用。謝謝。


更新:我只是測試禁用ConvertEmptyStringsToNull中間件現在我得到的類型是空字符串。也許我誤解了這種方法,我認爲默認值只是針對請求中不存在的指定字段而不是針對請求中存在的字段名稱,但值是空的,對嗎?哦,天啊,這意味着我在Laravel 5.2中也誤解了它。

回答

2

如果你想以編程方式添加一個默認值,無需禁用ConvertEmptyStringsToNullyou你可以這樣做:

$type = $request->input('type') ?: 1; // You can set whatever value you want 
+1

感謝這個想法。其他人,請參閱:https://laravel.com/docs/5.4/requests#input-trimming-and-normalization – Ryan