thinkphp 5.1 对数据库查出来的字段进行预处理

2023-12-02 15:44

本文主要是介绍thinkphp 5.1 对数据库查出来的字段进行预处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

比如数据库的设计是下面这样子:

我想展示的是这个样子:

前端可以处理。

Think PHP的处理方式:

定义属性   :

$this->customize = '任意值';//这里的之没有作用
<?phpnamespace app\hs\controller\shop;use app\daogou\model\Goods;
use app\hs\controller\Common;
use app\hs\traits\Curd;
use think\App;class Lists extends Common
{use Curd;public function __construct(App $app = null){parent::__construct($app);$this->model = new Goods();$this->alias = 'good';$this->join = ['user', 'user.id = good.user_id'];$this->field = 'good.*,username';$this->customize = 'status_txt';//        $good = $this->model->find();
//        dump($good);
//        $good->status_txt = '1112312';
//        dump($good);
//        dump($good->getData("price"));
//        die;}
}

在model 中定义 getXxxxAttr(){}  查询数据库会调用这个函数。对查出来的数据进行预处理

   public function getStatusTxtAttr($v,$data){//状态(-1:下架,1:上架,2:交易中)$status = [-1=>"下架",1=>"上架",2=>"交易中"];if(array_key_exists('status',$data)){return array_key_exists($data['status'],$status) ? $status[$data['status']] : $data['status'];}return '';}

<?phpnamespace app\daogou\model;use app\common\model\TimeModel;class Goods extends TimeModel
{protected $table = 'dg_goods';protected $type = ['type_params'=>'json',];//type_params://      type = 1 : [['coin_id'=>1,'award'=>"0.80000000"],……]//      type = 2 : ['max_number'=>10,'winner'=>1]//      type = 3 : nullpublic function user(){return $this->hasOne('user','user_id','id')->bind(['username']);}public function getStatusTxtAttr($v,$data){//状态(-1:下架,1:上架,2:交易中)$status = [-1=>"下架",1=>"上架",2=>"交易中"];if(array_key_exists('status',$data)){return array_key_exists($data['status'],$status) ? $status[$data['status']] : $data['status'];}return '';}public function getPriceAttr($v){return delZero($v);}
}

这篇关于thinkphp 5.1 对数据库查出来的字段进行预处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445896

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

使用Python进行文件读写操作的基本方法

《使用Python进行文件读写操作的基本方法》今天的内容来介绍Python中进行文件读写操作的方法,这在学习Python时是必不可少的技术点,希望可以帮助到正在学习python的小伙伴,以下是Pyth... 目录一、文件读取:二、文件写入:三、文件追加:四、文件读写的二进制模式:五、使用 json 模块读写

Oracle数据库使用 listagg去重删除重复数据的方法汇总

《Oracle数据库使用listagg去重删除重复数据的方法汇总》文章介绍了在Oracle数据库中使用LISTAGG和XMLAGG函数进行字符串聚合并去重的方法,包括去重聚合、使用XML解析和CLO... 目录案例表第一种:使用wm_concat() + distinct去重聚合第二种:使用listagg,

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

在Pandas中进行数据重命名的方法示例

《在Pandas中进行数据重命名的方法示例》Pandas作为Python中最流行的数据处理库,提供了强大的数据操作功能,其中数据重命名是常见且基础的操作之一,本文将通过简洁明了的讲解和丰富的代码示例,... 目录一、引言二、Pandas rename方法简介三、列名重命名3.1 使用字典进行列名重命名3.编

python安装完成后可以进行的后续步骤和注意事项小结

《python安装完成后可以进行的后续步骤和注意事项小结》本文详细介绍了安装Python3后的后续步骤,包括验证安装、配置环境、安装包、创建和运行脚本,以及使用虚拟环境,还强调了注意事项,如系统更新、... 目录验证安装配置环境(可选)安装python包创建和运行Python脚本虚拟环境(可选)注意事项安装

Java读取InfluxDB数据库的方法详解

《Java读取InfluxDB数据库的方法详解》本文介绍基于Java语言,读取InfluxDB数据库的方法,包括读取InfluxDB的所有数据库,以及指定数据库中的measurement、field、... 首先,创建一个Java项目,用于撰写代码。接下来,配置所需要的依赖;这里我们就选择可用于与Infl