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

Laravel 10中pluck()方法无法正确显示特殊字符的问题排查

问题原因与解决办法

问题根源

pluck('name') 返回的是Laravel Collection集合对象,并非单个字符串。在视图中用 {{$user_name}} 输出时,集合会被转为类似数组的字符串形式,再加上Blade模板默认的HTML转义处理,就导致特殊字符被转义显示。

而之前通过 DB::table('users')->select('name')->where('id', $id)->get() 后取 $user_name[0]->name,得到的是单个字符串,Blade输出时能正确渲染特殊字符。

解决办法

有两种简单的修正方式:

  1. 直接获取单个字符串值
    使用 value() 或 first() 直接拿到目标字段的字符串值:

    // 方法1:用value()直接取字段值
    $user_name = User::where('id', $id)->value('name');
    
    // 方法2:先取模型实例再拿字段
    $user_name = User::where('id', $id)->first()->name;
    

    此时$user_name是纯字符串,视图中用{{$user_name}}即可正常显示特殊字符。

  2. 从集合中提取单个值
    如果坚持使用pluck(),可以通过first()从集合中取出第一个元素:

    $user_name = User::where('id', $id)->pluck('name')->first();
    

    处理后$user_name变为字符串,直接在视图中输出即可。

注意:不要轻易使用{!! $user_name !!}来关闭转义,这种方式会带来XSS安全风险,仅适用于完全可信的静态内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:54:58