为什么通过Laravel Eloquent检索的数据会以这种方式运行?

时间:2013-09-16 08:32:21

标签: php laravel laravel-4

让我说我喜欢这样:

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

结果是not empty,为什么会这样?如果我将die('not empty')更改为die($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?

提前致谢:)

1 个答案:

答案 0 :(得分:4)

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

最简单的检查方法是

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

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