我正在使用datatable显示我的数据,如果是空数组,那么数据表将不会显示。
我试过
@if(count($results) > 0)
//data show
@foreach($results as $r)
<p>{{$r->name}}</p>
@endfor
@else
No result found.
@endif
//
// $results is an array
如果为空$ result,则返回错误。如果$ result为空,我如何才能显示自定义消息而不显示DataTable。
答案 0 :(得分:0)
你应该试试这个:
@if(isset($results) && !empty($results))
<?php
print('<pre style="color:red;">');
print_r($results);
print('</pre>');
?>
@foreach($results as $r)
<p>{{$r->name}}</p>
@endforeach
@else
No result found.
@endif
答案 1 :(得分:0)
使用isEmpty()
检查对象empty
或不 -
@if (!$result->isEmpty())
答案 2 :(得分:0)
对于foreach / empty场景,我们确实有一个刀片速记。
@forelse ($results as $r)
<p>{{ $r->name }}</p>
@empty
No result found
@endforelse
根据您拥有的代码以及您获得$results
的方式的评论,$results
应该是stdClass
个对象的数组,这意味着不应该发生错误。由于您拥有的代码有限,我无法确定错误是来自该代码。
我的猜测是$results
不是数组而是对象。 count(new stdClass) === 1
count(new App\User) === 1
等等......
答案 3 :(得分:0)
在控制器级别检查可能更安全,如果$ result为NULL,则返回0
收到收藏后,请检查:
$result = $result ? $result : 0
并返回$ result。
答案 4 :(得分:0)
您正在使用foreach
结束endfor
循环。它应该以{{1}}结束。
如果这不能解决您的错误,请使用您的控制器代码更新您的问题。结果变量是集合对象吗?