Fra*_*ezo 2 php laravel laravel-5.3
我在DB上有一个包含压缩数据的BLOB字段.
我需要压缩/解压缩才能透明,用户类不需要写:
$objModel->field = gzencode($objModel->field);
$objModel->field = gzdecode($objModel->field);
Run Code Online (Sandbox Code Playgroud)
为了保存,我得到了它,覆盖保存方法:
public function save($attributes[] = null) {
$this->field = gzencode($objModel->field);
return parent::save($attributes);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我从数据库中恢复数据时,我没有得到gzdecode"透明",我已经尝试覆盖启动,__ call,__ callstatic和其他,但不成功.
有人能告诉我哪种方法从数据库恢复数据并填充模型对象,以便我可以覆盖它并生成gzdecode?
非常感谢你.
我不建议你覆盖Eloquent方法.只需使用访问者:
public function getFieldAttribute($value)
{
return gzdecode($value);
}
Run Code Online (Sandbox Code Playgroud)
并且变异者:
public function setFieldAttribute($value)
{
$this->attributes['field'] = gzencode($value);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |