2017-04-11 10 views
1

私はlaravel 5.4を学習しています。私は、要求入力空の文字列をnullに変換する新しいグローバルミドルウェアがあることを知っています。しかし、私は質問があります:http://localhost/choosePlan?type=1のようなURL。私は私のコントローラのアクションでタイプされた値を取得します。そこ要求入力に提出されたいかなるタイプがないか、値が空である、私は1にデフォルト・タイプの値を設定したい場合は、私のコントローラのアクションでは、私はこのように書く:Laravel 5.4入力空のデフォルト値

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

だけ私は私ができるhttp://localhost/choosePlanにアクセス型のデフォルト値を取得します。 http://localhost/choosePlan?typehttp://localhost/choosePlan?type=のようなアクセスをすれば、まだタイプがnullになります。だから私は、入力メソッドのデフォルト値は、要求の本文に正しい名前がない場合にのみうまく動作すると思いますか?上記の問題を解決するにはどうすればよいですか?決定型は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

関連する問題