检查Laravel对象是否有项目

时间:2020-02-25 15:26:36

标签: php laravel collections count

我必须确保仅在刀片中显示foreach循环-仅当变量中包含元素时。

所以我需要检查我的变量是否为 -是否为null(在非常动态的刀片中可能没有此类变量) -它具有元素-如果是数组,如果是集合,是否是分页集合?

到目前为止,我做了这个小功能,但是看起来有点奇怪,由于我对Laravel不太满意,我想知道是否已经有更好的东西了?

public static function hasItems($object) {
        if (is_null($object)) {
            return false;
        }

        //array
        if (
            is_array($object) && 
            count($object) > 0
        ) {
            return true;
        }

        //Laravel collection
        if (
            is_object($object) &&
            $object instanceof \Illuminate\Support\Collection &&
            $object->count() > 0            
        ) {
            return true;
        }

        //Laravel paginator
        if (
            is_object($object) &&
            $object instanceof \Illuminate\Pagination\LengthAwarePaginator &&
            count($object) > 0          
        ) {
            return true;
        }

        return false;
    }

1 个答案:

答案 0 :(得分:1)

您可以使用isEmpty()方法link。 或者在Blade中,您可以使用@forelse指令,该指令基本上是foreach和if link

编辑1: 我只是意识到您说您也可以将null作为值。 那么一个解决方案是:

forelse($var ?? [] as $varItem)

@empty

@endforelse 
相关问题