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

Laravel 5.7含数字属性名的模型访问器被忽略问题求助

解决Laravel 5.7中含数字字段的访问器不生效问题

可能的原因及解决步骤

1. 清除类缓存

Laravel的类缓存可能导致模型的访问器修改未被加载,执行以下命令清除缓存:

php artisan clear-compiled
php artisan cache:clear
php artisan config:clear

2. 验证访问器命名的正确性

虽然你按规则命名了getItem1QualityAttribute,可以手动验证Laravel的字段名转换逻辑,在tinker中执行:

use Illuminate\Support\Str;
echo Str::studly('item_1_quality'); // 正常应输出Item1Quality

如果输出符合预期,说明命名本身没问题,问题出在其他环节。

3. 直接重写getAttribute方法强制处理

如果上述方法无效,可以在模型中重写getAttribute方法,手动指定该字段的处理逻辑:

public function getAttribute($key)
{
    if ($key === 'item_1_quality') {
        // 此处编写你的访问器逻辑,示例:
        $value = parent::getAttribute($key);
        return $value ? ucfirst($value) : '无';
    }

    return parent::getAttribute($key);
}

4. 检查模型的其他配置

  • 确认模型中$casts属性没有对该字段做可能冲突的类型转换
  • 排查是否有其他Trait或扩展方法覆盖了访问器的调用逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:36