Laravel雄辩模型中的多变量

时间:2018-10-17 08:42:52

标签: laravel eloquent

要在Eloquent Model类中定义一个Mutator,我们使用getFooAttribute像这样:

public function getTitleAttribute($value)
{
    return ucfirst($value);
}

但是,假设我想重命名一个模型中有很多(20到30个)属性,为每个模型创建一个函数很费力,有没有更聪明的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以覆盖模型上的getAttribute函数,并在其中具有关联数组以重命名属性。

public function getAttribute($key)
{
    $renames = [
        'foo' => 'bar',
    ];

    if (array_key_exists($key, $renames))
        $key = $renames[$key];

    return parent::getAttribute($key);
}