访问Laravel 5中的原始口才变异属性值

问题描述 投票:5回答:3

说我有一个模型Foo,并且正在更改属性获取器,就像这样:

class Foo extends Model
{   
    protected $table = 'foo';

    public function getSomeBarAttribute($value)
    {
        return some_function($value);
    }
}

是否有一种方法可以访问属性的原始值,预先突变?

laravel laravel-5 eloquent accessor
3个回答
13
投票

您寻找的方法是getOriginal。要获得原始值,您可以使用:

$this->getOriginal('some_bar');

1
投票

在模型中定义此变量:

/**
 * The model attribute's original state.
 *
 * @var array
 */
protected $original = array();

它受到保护,因此您应该添加一个函数来获取原始值

(未测试)


0
投票
$currentSomeBar = $foo->some_bar


$oldFoo = new Foo($foo->getOriginal());

$oldSomeBar = $oldFoo->some_bar;
© www.soinside.com 2019 - 2024. All rights reserved.