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

Laravel 9中Dompdf结合if-else生成图片报错求助

问题解决方法

你的核心问题是条件判断错误使用了赋值运算符=,而非比较运算符==/===,这会修改变量值并导致逻辑混乱:

错误原因

在Blade(基于PHP)中:

  • =是赋值运算符,用于给变量赋值,而非判断相等
  • 条件判断需要用==(松散比较)或===(严格比较,推荐)

你原代码中的@if ($student->w2c = '')会把空字符串赋值给$student->w2c,这个表达式返回空字符串(布尔语境下为false),因此会强制进入else分支显示图片;同时$student->w2c被修改为空,可能导致$w2_img的生成逻辑失效(比如仅当$student->w2c为true时才生成有效base64图片),最终出现加载错误。

第二个代码块看似正常,实际也是错误逻辑:$student->br = 'area1'会强制把$student->br设为'area1',导致第一个if永远成立,并非真实的条件判断结果。

修正后的代码

图片判断逻辑

如果$student->w2c是布尔值(true/false),建议直接判断布尔值:

@if (!$student->w2c)
no image.
@else
<img src="data:image/png;base64, {{ $w2_img }}" width="100%" class="img-thumbnail">
@endif

如果$student->w2c是字符串类型,用严格比较:

@if ($student->w2c === '')
no image.
@else
<img src="data:image/png;base64, {{ $w2_img }}" width="100%" class="img-thumbnail">
@endif

区域判断逻辑

@if ($student->br === 'area1')
area1 info
@elseif ($student->br === 'area2')
area2 info
@else
-
@endif

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:37:19