在laravel中查找表是否为空

时间:2019-03-01 08:53:28

标签: laravel

我试图找出我的表是否为空,但是出现此错误

  

调用未定义函数App \ Http \ Controllers \ isEmpty()

我确实检查了一个与我的标题相似但又没有我需要的问题。

这是我的代码

$orders = Order::all();

if(isEmpty($orders))
{
    echo "Im empty";
    die();
 }else{
    echo "im not empty";
     die();
 }

5 个答案:

答案 0 :(得分:1)

检查表是否为空的最佳和最快的方法是:

//When using eloquent
if(empty(Order::count())){
   // Do something here
}

//When using query builder
if(empty(DB::table('orders')->count())){
   // Do something here
}

在内部,这些将计算数据库本身的总行数,并生成以下查询。

select count(*) as aggregate from `orders`

答案 1 :(得分:1)

您应该使用 Model::exists()。它返回 true/false 并在后台运行 select count(*) from table where 查询。

if (Order::exists()) {
    echo "im not empty";
    die();
} else {
    echo "Im empty";
    die();
}

答案 2 :(得分:0)

如果要检查数组,请使用$orders->isEmpty(),对于Laravel集合,可以使用isEmpty()

当前,您正在调用的函数$orders = Order::all(); if($orders->isEmpty()) { echo "Im empty"; die(); }else{ echo "im not empty"; die(); } 尚不存在。

尝试一下:

{{1}}

答案 3 :(得分:0)

您可以调用雄辩的call函数来获取计数,然后检查计数是否等于零。

$products = Order::count(); //returns products count
if($products == 0){
    //products table is empty
}

if($products->isEmpty()){
//products table is empty.
}

答案 4 :(得分:0)

Laravel Documentation指出您可以使用这种方式:

$orders = Order::all();
if($orders->isEmpty())
{   
  echo "Im empty";
} else {
  echo "Im not empty";
}