获取口才模型Laravel 5.1的原始属性

zengzsys  于 2023-01-18  发布在  其他
关注(0)|答案(9)|浏览(149)

我有Foo属性,使用getFooAttribute方法在显示前格式化它,但在某些地方,我需要原始属性。那么我该如何做呢?

jogvjijk

jogvjijk1#

从v4.2开始获取特定属性的原始值:
$originalFoo = $model->getOriginal('foo');

hlswsv35

hlswsv352#

如果你想在大多数代码中使用mutator,但有时又想访问原始值,你可以通过使用模型的**getAttributes()**方法获取所有属性,然后从那里获取值来实现,例如:

$originalFoo = $model->getAttributes()['foo'];
mitkmikd

mitkmikd3#

如果您希望直接从数据库中取出原始字段,跳过mutator,则

$mode->getRawOriginal('attribute')

$model->getOriginal()将为您提供mutator值而不是您想要的原始数据。
参见https://laravel.com/api/7.x/Illuminate/Database/Eloquent/Concerns/HasAttributes.html#method_getRawOriginal

lfapxunr

lfapxunr4#

拉瑞维尔7号和Symfony 5号

$model->getRawOriginal()

getOriginal方法

影响可能性:低
$model->getOriginal()方法现在将考虑模型上定义的任何转换和赋值函数。以前,此方法返回未转换的原始属性。如果要继续检索原始的未转换值,可以改用getRawOriginal方法。

    • 参考文件A:升级指南:从6.x升级到Laravel 7.0 *
    • 参考文件B:Laravel 7.x雄辩API*
qlckcl4x

qlckcl4x5#

我使用的是5.3,为此我使用$model->getOriginal()['foo']

nqwrtyyt

nqwrtyyt6#

对于laravel 5,我们还可以用途:

$model->getOriginal('foo')

感谢@bower

xmq68pz9

xmq68pz97#

对我有用

$newProduct = $product[0]->getRawOriginal();
gstyhher

gstyhher8#

其实看起来上面都是正确的,只是看看这是否在数组key [0]中例如:

$originalFoo = $model[0]->getRawOriginal('foo');
ssgvzors

ssgvzors9#

值得一提的是,Laravel模型类覆盖了__set__get的魔术方法,因此您还可以动态检索original属性,即$model->original
参见https://github.com/laravel/framework/blob/5.1/src/Illuminate/Database/Eloquent/Model.php

相关问题