gpt4 book ai didi

php - Laravel - 模型类,覆盖主要方法

转载 作者:行者123 更新时间:2023-12-04 01:49:28 25 4
gpt4 key购买 nike

我的数据库中有一个包含压缩数据的 BLOB 字段。

我需要压缩/解压透明,用户类不需要写:

$objModel->field = gzencode($objModel->field);
$objModel->field = gzdecode($objModel->field);

为了保存我明白了,重写保存方法:

public function save($attributes[] = null) {
$this->field = gzencode($objModel->field);
return parent::save($attributes);
}

但是当我从数据库中恢复数据时,我没有得到 gzdecode“透明”,我尝试覆盖引导、__call、__callstatic 和其他,但没有成功。

谁能告诉我哪个方法从数据库中恢复数据并填充模型对象,以便我可以覆盖它并生成 gzdecode?

最佳答案

我不建议您重写 Eloquent 方法。只需使用 accessor :

public function getFieldAttribute($value)
{
return gzdecode($value);
}

mutator :

public function setFieldAttribute($value)
{
$this->attributes['field'] = gzencode($value);
}

关于php - Laravel - 模型类,覆盖主要方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41429617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com