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

Laravel Blade模板中数据库图片名为空时如何返回静态占位图片?

问题根因

你的代码异常是PHP运算符优先级规则导致的:

  • 字符串拼接运算符.的优先级高于Null合并运算符??,你写的代码实际执行逻辑是先完成'/images/user/'. $profile->photo的拼接,再对拼接结果做Null判断。
  • 哪怕$profile->photo为null,拼接后的结果/images/user/仍然是非Null值,所以??后的占位图逻辑永远不会触发。
  • Laravel的URL::asset方法处理末尾带斜杠的路径时会自动移除末尾斜杠,最终就出现了你看到的渲染结果。

修复方案

只需要给Null判断逻辑加括号,手动指定运算优先级即可,正确代码如下:

<img src="{{ URL::asset('/images/user/'. ($profile->photo ?? 'Firefighter-Silhouette.png')) }}" class="rounded-circle shadow-2 img-thumbnail" alt="">

修改后会先判断$profile->photo是否为Null:值存在时就用存储的图片名,值为空时就用占位图文件名,再和前面的路径拼接生成正确的资源地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:15:04