laravel5.6 Attribute的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tclzsn7456/article/details/87855472

Attribute可以给返回值中加上数据表中没有的值,或者修改查到的结果的格式,或者对查询结果某些字段进行修改后返回,下面介绍一下使用方法

首先在模型里加入appends,数组中填写返回值中想要新增的字段名(建议原字段名+标识的格式)

protected $appends = ['file_size_human', 'subject_code_human'];

这里2个字段分别是文件大小比特单位转后兆单位、学科标识码转后的学科名

固定格式方法名:getFileSizeHumanAttribute,红色部分对应上面数组中新增的字段名(注意:这里一定是驼峰格式的

public function getFileSizeHumanAttribute()
    {
        if (isset($this->attributes['file_size']) && !empty($this->attributes['file_size'])) {
            return FileHelper::formatBytes($this->attributes['file_size'], 1);
        } else {
            return '未知大小';
        }
    }
public function getSubjectHumanAttribute()
    {
        if (isset($this->attributes['subject']) && !empty($this->attributes['subject'])) {
            return $this->rank_array['subjectLibrary'][$this->attributes['subject']];
        } else {
            return '科目';
        }
    }

使用的时候,只要正常通过模型查找数据库,这里和appends中对应的方法会执行到,然后返回值跟查找结果合并一起返回

猜你喜欢

转载自blog.csdn.net/tclzsn7456/article/details/87855472