猿问

检查 Laravel 对象是否有项目

我必须确保我只在刀片中显示一个 foreach 循环 - 仅当我的变量中有元素时。


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


到目前为止,我做了这个小功能,但它看起来有点奇怪,因为我对 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;

    }


慕无忌1623718
浏览 72回答 1
1回答

扬帆大鱼

您可以使用isEmpty()方法链接。或者在 Blade 中,您可以使用@forelse基本上foreach带有 if链接的指令编辑 1:我刚刚意识到您说您也可以将 null 作为值。那么解决方案是:forelse($var ?? [] as $varItem)@empty@endforelse 
随时随地看视频慕课网APP
我要回答