首页 > 解决方案 > Laravel 检查关系是否为空

问题描述

我有一个具有一些关系的对象,我需要检查这些关系是否为空,我正在尝试检查 is_null、isset、!= undefined 等,但没有任何效果,这是我在它为空时得到的关系:

object(Illuminate\Database\Eloquent\Collection)#197 (1) {
  ["items":protected]=>
    array(0) {
  }
}

有没有办法轻松检查?谢谢。

标签: laravelrelationship

解决方案


有多种方法可以做到这一点。

在查询本身中,您可以过滤没有任何相关项目的模型:

Model::has('relation')->get()

一旦你有了一个模型,如果你已经加载了集合,你可以检查集合的计数:

$model->relation->count();

如果要在不加载关系的情况下进行检查,可以对关系运行查询:

$model->relation()->exists()

注意:relation在上述示例中替换为您的关系名称。


推荐阅读