有时我得到一个例外只是因为 foreach 标记的供应不包含数组。
喜欢;
//controller
->with('array', Something::all());
//view
@foreach ($array as $k => $v)
{{ $v }}
@endforeach
如果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 中处理这个问题的最佳实践是什么。在控制器中?在视野中?别的地方?完全不同的概念?我想学习处理这个问题的最佳实践。
附言。我举了一个 Laravel 的例子,但也欢迎非 Laravel 的响应。