属性名包含数字的Laravel模型访问器被忽略



在我的数据库Laravel 5.7我有一个属性包含一个数字在它的名字- item_1_quality。当我使用camel case创建方法名的访问器时,它将被忽略。

我尝试了各种组合,其中最明显的是

public function getItem1QualityAttribute($value)
{
dd($value);
}

然而,不起作用。我尝试了其他可能的组合,但都没有成功。我正确地调用属性在同一模型中的其他访问器工作良好。问题似乎与命名有关。

我已经找到了一个粗糙但有效的解决方案,有人可能会觉得有用。

  1. 为追加内容添加属性

    protected $appends = ['product_1_quality'];
    
  2. 创建以下访问器:

    public function getProduct1QualityAttribute()
    {
    $value = $this->attributes['product_1_quality']);
    // do something with your $value and return.
    }
    

$value作为参数不能工作-使用$attributes数组访问

最新更新