You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 8判断littlelink_pixiv字段为空展示内容时报null错误如何解决

问题解决方案

错误根因

Call to a member function isEmpty() on null 报错的核心原因是 $info->littlelink_pixiv 的值为 null,而 isEmpty() 是Laravel集合/对象的内置方法,无法在null类型的值上直接调用。

适配不同场景的修复方案

  • 场景1:littlelink_pixiv 为普通字符串/数值字段
    直接判断字段值非空即可,不需要调用 isEmpty() 方法,推荐使用Laravel自带的 filled() 方法判断非空,或者用PHP null安全操作符避免变量不存在的报错:

    @if(filled($info?->littlelink_pixiv))
    <section>
      <main class="card__wrapper">
      </main>
    </section>
    @endif
    
  • 场景2:littlelink_pixiv 为关联关系返回的集合类型
    用null安全操作符或者 optional() 辅助函数包裹调用,避免关联值为null时调用方法报错:

    {{-- 写法1:PHP 8+ 支持的null安全操作符 --}}
    @if($info?->littlelink_pixiv?->isNotEmpty())
    <section>
      <main class="card__wrapper">
      </main>
    </section>
    @endif
    
    {{-- 写法2:兼容低版本PHP的optional写法 --}}
    @if(optional($info->littlelink_pixiv)->isNotEmpty())
    <section>
      <main class="card__wrapper">
      </main>
    </section>
    @endif
    
  • 可选优化:封装访问器简化调用
    如果多处需要判断该字段是否非空,可以在User模型中封装访问器统一逻辑:

    // app/Models/User.php
    public function getHasPixivAttribute(): bool
    {
        // 字符串字段用这个
        return filled($this->attributes['littlelink_pixiv'] ?? null);
        
        // 集合关联用这个
        // return optional($this->littlelink_pixiv)->isNotEmpty() ?? false;
    }
    

    后续Blade视图中可以直接简化为:

    @if($info->has_pixiv)
    <section>
      <main class="card__wrapper">
      </main>
    </section>
    @endif
    

内容的提问来源于stack exchange,提问作者TravelWhere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:36:01