0

假设我这样做:

$data = Somedatabase::all();// and in my database, this is EMPTY
if ($data){
  die('not empty');
}else{
  die('empty);
}

结果却是not empty,为什么会这样?如果我改成die('not empty')ifdie($data)会给我[]

所以,我的第一个问题是why it behaves this way?(showing a '[]')

我问的原因是因为在我看来,我想这样做:

@if ($data)
  @foreach ($data as $tmp)
    {{$tmp}}
  @endforeach
@else
  <p>EMPTY!</p>
@end

但我永远无法得到“空!” 现在我正在使用 $flag 进行检查,以便当它为空时我可以收到消息,但我认为应该有更好的方法,所以,第二个问题是what I suppose to do if I wanna get the "EMPTY!" message?

提前致谢 :)

4

1 回答 1

4

Somedatabase:all() 总是返回一个雄辩的集合对象。该对象是否包含任何数据是另一回事。

最简单的检查方法是

if ($data->isEmpty()){
  die('empty');
}else{
  die('not empty);
}

或者

if ($data->count()){
  die('not empty');
}else{
  die('empty);
}
于 2013-09-16T08:56:18.773 回答