2

foreach タグの供給に配列が含まれていないという理由だけで、例外が発生することがあります。

お気に入り;

//controller
->with('array', Something::all());

//view
@foreach ($array as $k => $v)
   {{ $v }}
@endforeach

If Something::all() returns null(これは一般的ですif Something model doesn't contain any data),foreach$array実際には配列ではなく、NULL.

この例外を防ぐ方法はたくさんあります。

コントローラーでチェックし、値が設定されていない場合は空の配列をプッシュします。

->with('array', Something::all() ?: array());

または、ビューファイルでそれを行うこともできます。

@if(!empty($array))
    @foreach ($array as $k => $v)
        {{ $v }}
    @endforeach
@endif

どちらも問題なく動作しますが、Laravel でこれを処理するベスト プラクティスは何なのか、本当に疑問に思っています。コントローラーで?ビューで?何処か別の場所?全然違うコンセプト?これに対処するためのベストプラクティスの使用方法を学びたいと思います。

Ps。Laravel の例を挙げましたが、Laravel 以外の回答も歓迎します。

4

4 に答える 4

1

別の可能なオプションは次のとおりですが、ビューのロジックが少し多すぎるのではないかと思います。

@foreach ($array ?: array())
    ...
@endforeach
于 2013-07-01T04:45:23.307 に答える