laravel5.6 Attribute的使用

本文介绍了如何在Laravel5.6中使用Attribute来为查询结果添加不存在的数据表字段,例如转换文件大小单位和学科标识码。通过在模型中定义appends属性,并创建相应的方法,可以在获取数据时自动处理并合并到结果中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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中对应的方法会执行到,然后返回值跟查找结果合并一起返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值