如何在 lumen 中有选择地调用 mutator

How to optionally call mutator in lumen

我在我的模型中使用 mutator 来加密 id:

public function getIdAttribute($value)
{
    return encrypt($value);
}

但我希望默认值是 id 的原始值,并在需要时调用 mutator。这可能吗?

如果您希望能够调用原始值,有时还调用加密值,为什么不向您的模型添加一个额外的函数呢? 您不会使用修改器,因为您希望能够获取原始值,但您可以在模型中添加一个像这样的额外函数,当您想要接收加密值时可以调用该函数。

public function encryptedId()
    {
        return encrypt($this->id);
    }

还是我遗漏了什么?

您可以使用 getRawOriginal() 获取以流明为单位的原始值:

例如:

$model = Model::find('model_id');
return $model->getRawOriginal('column_name'));