我有Foo属性,在显示之前使用getFooAttribute方法对其进行格式化,但在某些地方,我需要原始属性..所以我该怎么做
答案 0 :(得分:20)
从v4.2开始获取特定属性的原始值:
$originalFoo = $model->getOriginal('foo');
答案 1 :(得分:8)
如果你想在大多数代码中使用 mutator 但有时想要访问原始值,你可以通过使用 getAttributes()模型的方法,然后从那里获取值,例如:
$originalFoo = $model->getAttributes()['foo'];
答案 2 :(得分:6)
我使用5.3,为此我使用$model->getOriginal()['foo']
答案 3 :(得分:4)
对于laravel 5,我们还可以使用:
$model->getOriginal('foo')
@bower的积分
答案 4 :(得分:4)
如果您希望直接将原始字段从数据库中跳过跳过增幅器,那么</ p>
$mode->getRawOriginal('attribute')
是必经之路。 $model->getOriginal()
会为您提供mutator值,而不是您想要的原始数据。
答案 5 :(得分:1)
$model->getRawOriginal()
getOriginal方法
影响的可能性:低
$model->getOriginal()
方法现在将尊重模型上定义的所有强制转换和变形器。以前,此方法返回未广播的原始属性。如果您想继续检索原始的,未转换的值,则可以改用getRawOriginal
方法。
答案 6 :(得分:0)
为我工作
$newProduct = $product[0]->getRawOriginal();
答案 7 :(得分:-2)
也许值得一提的是Laravel模型类会覆盖__set
和__get
的魔术方法,因此您还可以动态地获取original
属性,即{{ 1}}。
请参见https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php