说我有一个模型Foo
,并且正在更改属性获取器,就像这样:
class Foo extends Model
{
protected $table = 'foo';
public function getSomeBarAttribute($value)
{
return some_function($value);
}
}
是否有一种方法可以访问属性的原始值,预先突变?
您寻找的方法是getOriginal。要获得原始值,您可以使用:
$this->getOriginal('some_bar');
在模型中定义此变量:
/**
* The model attribute's original state.
*
* @var array
*/
protected $original = array();
它受到保护,因此您应该添加一个函数来获取原始值
(未测试)
$currentSomeBar = $foo->some_bar
$oldFoo = new Foo($foo->getOriginal());
$oldSomeBar = $oldFoo->some_bar;