【问题标题】:Check if Laravel object has items检查 Laravel 对象是否有项目
【发布时间】:2020-02-25 15:26:36
【问题描述】:

我必须确保我只在刀片中显示一个 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;
    }

【问题讨论】:

    标签: php laravel collections count


    【解决方案1】:

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

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

    forelse($var ?? [] as $varItem)
    
    @empty
    
    @endforelse 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-12
      • 2019-06-09
      • 2011-01-09
      • 2018-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-10
      相关资源
      最近更新 更多