2017-02-14 20 views
0

私は入力配列を与える動的に生成されたフォームを持っています。配列が空の場合、foreachは失敗します。Laravelでリクエスト配列が空であるかどうかを調べる

これは明らかに$ requestオブジェクトであり、常に設定されているため動作しません。しかし、入力があるかどうかをチェックする方法はわかりません。

アイデア?

答えて

2

App\Http\ControllersディレクトリのControllerに機能を追加することで、いつでも私のインストールでこれを行います。

use Illuminate\Http\Request; 
public function hasInput(Request $request) 
{ 
    if($request->has('_token')) { 
     return count($request->all()) > 1; 
    } else { 
     return count($request->all()) > 0; 
    } 
} 

むしろ自己説明、_tokenの外の他の入力変数の場合にtrueを返し、又は全くtokenおよび他の変数を含む場合trueを返します。

+1

これらの内部if文を取り除き、代わりに 'return count($ request-> all())> 0;'または 'return count($ request-> all())を使用すると、 > 1; ' – Spholt

+0

^他の人の必要はありません。最初のif文はtrueまたはfalseを返します。 –

4

簡単なカウントチェックは、あなたが期待しているフォーム入力の参照を持っている場合は、Request::has()を使用するには良い方法かもしれません

if (count($request->all())) { 
    // foreach here. 
} 
2

を行います。 Request::all()にXSRFトークンのようなものが含まれている可能性があります。

0

要求クラスには、定義されたキー/キー以外のすべてを含むexcept()メソッドがあります。したがって、要求配列に「何か」があるときにコードを実行します。

関連する問題