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

Laravel 5读取Blob/longtext字段返回TRUE/1问题求助

问题根源与解决方案

我一眼就看出问题出在你的模型类型转换($casts)配置上!

看你的Taccuino模型代码,这两个字段被强制转换成了布尔类型:

protected $casts = [
    // ... 其他配置
    'taccuino_report_anteriore' => 'boolean',
    'taccuino_report_posteriore' => 'boolean'
];

不管你数据库里存的是什么字符串内容,只要这个字段非空,Laravel就会把它转换成true(在Blade模板里输出就是1)——这就是你遇到诡异现象的核心原因!

修复步骤:

  1. 修正模型的类型转换配置
    把这两个字段的boolean改成string,或者直接从$casts数组里删掉这两行(Laravel会自动把binary/longtext字段当作字符串处理):

    protected $casts = [
        'id_taccuino' => 'int',
        'id_paziente' => 'int',
        // 删掉下面两行,或者替换为 'string'
        // 'taccuino_report_anteriore' => 'boolean',
        // 'taccuino_report_posteriore' => 'boolean'
    ];
    
  2. 清理Laravel缓存(可选但推荐)
    框架有时会缓存模型元数据,执行以下命令确保修改生效:

    php artisan cache:clear
    php artisan config:cache
    
  3. 验证效果
    现在再在Blade里使用{{$record->taccuino_report_posteriore}},就能正常输出数据库中存储的实际字符串内容了。

补充说明:你之前把字段从Blob改成longtext的方向是对的,但模型里的类型转换没同步更新,才导致问题依旧。只要修正模型的casts配置,就能彻底解决问题!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:44:42