集合为空,但是if(!empty($ tags))的计算结果为true

时间:2018-10-25 13:07:09

标签: php laravel

仅在$tags集合不为空的情况下,我才尝试呈现一些HTML代码。但是,即使该集合为空,也会呈现HTML代码。

当我dd($tags)时,我得到一个空的[]。为什么会这样?

@if(!empty($tags))
    <p><i class="fas fa-tags"></i> Tags</p>
    <div class='image-tags'>
        @foreach($tags as $tag)
            <a class='image-tag' href="#">{{ $tag->name }}</a>
        @endforeach
    </div>
@endif

4 个答案:

答案 0 :(得分:4)

尝试

@if(count($tags) > 0)
    More code here ....
@endif

$tags是一个数组

答案 1 :(得分:2)

PHP将Laravel集合视为一个对象。如果该对象不是null,则empty函数将始终返回true。如果要检查集合中是否包含元素,可以使用isNotEmpty集合函数。

@if($tags->isNotEmpty())

@endif

答案 2 :(得分:0)

您应该将count($tags)用于数组,如果是laravel集合,则应使用$tags->count()

答案 3 :(得分:0)

请检查该网址http://php.net/manual/en/function.empty.php,在此可以正确使用空函数。

在您的情况下,如果$ tags是一个数组,则应该这样使用:

if(count($tags) > 0)