当前位置: 首页 > news >正文

thinkphp lists todo

来由:

数据库的这个字段我想返回成:

新奇的写法如下:

逻辑层的代码:

  public function goodsDetail($goodId){$detail = $this->good->where('id', $goodId)->hidden(['type_params','user_id'])->find();if (!$detail) {return $this->fail("获取数据失败!");}if ($detail->type === 1) {//特殊的写法$detail->award_lists = '';} else if ($detail->type === 2) {$number_group_buyer = Order::where('good_id', $goodId)->where('status',1)->count('id');$detail->number_group_buyers = $number_group_buyer;}return $this->success("获取数据成功", $detail);}

模型层的代码:

<?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);}public function getTypeTxtAttr($v,$data){//(1:奖购2:团购,3:闪购)$status = [1=>"奖购",2=>"团购",3=>"闪购"];if(array_key_exists('type',$data)){return array_key_exists($data['type'],$status) ? $status[$data['type']] : $data['type'];}return '';}// 不理解的代码public function getAwardListsAttr($v, $good){$awardLists = [];if ($good['type'] === 1) {$type_params = json_decode($good['type_params'],true);foreach ($type_params as $propertyId => $properNumber) {$propertyName = Coin::where('id', $propertyId)->value('name');$award['asset_name'] = $propertyName;$award['asset_number'] = $properNumber;array_push($awardLists,$award);}}return $awardLists;}}

可以通过  :

$ba = debug_backtrace();
var_dump($ba);
die();

来查看执行的流程,,流程如下(个人感觉看起来 【展示的效果】 不是很友好 很乱的感觉 ):

array(8) {[0]=>array(7) {["file"]=>string(66) "D:\wwwroot\yyex\thinkphp\library\think\model\concern\Attribute.php"["line"]=>int(500)["function"]=>string(17) "getAwardListsAttr"["class"]=>string(22) "app\daogou\model\Goods"["object"]=>object(app\daogou\model\Goods)#58 (2) {["data"]=>array(14) {["id"]=>int(14)["user_id"]=>int(2)["type"]=>int(1)["name"]=>string(14) "仙侠小说ss"["photo"]=>string(20) "http://ff12.ffsky.cn"["price"]=>string(6) "102.30"["introduction"]=>string(5) "ccsss"["phone"]=>string(11) "13246885231"["type_params"]=>string(9) "{"20":22}"["status"]=>int(1)["create_time"]=>int(1701844614)["update_time"]=>int(1701844614)["remark"]=>NULL["award_lists"]=>string(0) ""}["relation"]=>array(0) {}}["type"]=>string(2) "->"["args"]=>array(2) {[0]=>string(0) ""[1]=>array(14) {["id"]=>int(14)["user_id"]=>int(2)["type"]=>int(1)["name"]=>string(14) "仙侠小说ss"["photo"]=>string(20) "http://ff12.ffsky.cn"["price"]=>string(6) "102.30"["introduction"]=>string(5) "ccsss"["phone"]=>string(11) "13246885231"["type_params"]=>string(9) "{"20":22}"["status"]=>int(1)["create_time"]=>int(1701844614)["update_time"]=>int(1701844614)["remark"]=>NULL["award_lists"]=>string(0) ""}}}[1]=>array(7) {["file"]=>string(67) "D:\wwwroot\yyex\thinkphp\library\think\model\concern\Conversion.php"["line"]=>int(179)["function"]=>string(7) "getAttr"["class"]=>string(11) "think\Model"["object"]=>object(app\daogou\model\Goods)#58 (2) {["data"]=>array(14) {["id"]=>int(14)["user_id"]=>int(2)["type"]=>int(1)["name"]=>string(14) "仙侠小说ss"["photo"]=>string(20) "http://ff12.ffsky.cn"["price"]=>string(6) "102.30"["introduction"]=>string(5) "ccsss"["phone"]=>string(11) "13246885231"["type_params"]=>string(9) "{"20":22}"["status"]=>int(1)["create_time"]=>int(1701844614)["update_time"]=>int(1701844614)["remark"]=>NULL["award_lists"]=>string(0) ""}["relation"]=>array(0) {}}["type"]=>string(2) "->"["args"]=>array(1) {[0]=>string(11) "award_lists"}}[2]=>array(7) {["file"]=>string(67) "D:\wwwroot\yyex\thinkphp\library\think\model\concern\Conversion.php"["line"]=>int(250)["function"]=>string(7) "toArray"["class"]=>string(11) "think\Model"["object"]=>object(app\daogou\model\Goods)#58 (2) {["data"]=>array(14) {["id"]=>int(14)["user_id"]=>int(2)["type"]=>int(1)["name"]=>string(14) "仙侠小说ss"["photo"]=>string(20) "http://ff12.ffsky.cn"["price"]=>string(6) "102.30"["introduction"]=>string(5) "ccsss"["phone"]=>string(11) "13246885231"["type_params"]=>string(9) "{"20":22}"["status"]=>int(1)["create_time"]=>int(1701844614)["update_time"]=>int(1701844614)["remark"]=>NULL["award_lists"]=>string(0) ""}["relation"]=>array(0) {}}["type"]=>string(2) "->"["args"]=>array(0) {}}[3]=>array(5) {["function"]=>string(13) "jsonSerialize"["class"]=>string(11) "think\Model"["object"]=>object(app\daogou\model\Goods)#58 (2) {["data"]=>array(14) {["id"]=>int(14)["user_id"]=>int(2)["type"]=>int(1)["name"]=>string(14) "仙侠小说ss"["photo"]=>string(20) "http://ff12.ffsky.cn"["price"]=>string(6) "102.30"["introduction"]=>string(5) "ccsss"["phone"]=>string(11) "13246885231"["type_params"]=>string(9) "{"20":22}"["status"]=>int(1)["create_time"]=>int(1701844614)["update_time"]=>int(1701844614)["remark"]=>NULL["award_lists"]=>string(0) ""}["relation"]=>array(0) {}}["type"]=>string(2) "->"["args"]=>array(0) {}}[4]=>array(4) {["file"]=>string(56) "D:\wwwroot\yyex\thinkphp\library\think\response\Json.php"["line"]=>int(36)["function"]=>string(11) "json_encode"["args"]=>array(2) {[0]=>*RECURSION*[1]=>int(256)}}[5]=>array(7) {["file"]=>string(51) "D:\wwwroot\yyex\thinkphp\library\think\Response.php"["line"]=>int(396)["function"]=>string(6) "output"["class"]=>string(19) "think\response\Json"["object"]=>object(think\response\Json)#57 (8) {["options"]=>array(1) {["json_encode_param"]=>int(256)}["contentType"]=>string(16) "application/json"["data"]=>*RECURSION*["charset"]=>string(5) "utf-8"["code"]=>int(200)["allowCache"]=>bool(true)["header"]=>array(1) {["Content-Type"]=>string(31) "application/json; charset=utf-8"}["content"]=>NULL}["type"]=>string(2) "->"["args"]=>array(1) {[0]=>*RECURSION*}}[6]=>array(7) {["file"]=>string(51) "D:\wwwroot\yyex\thinkphp\library\think\Response.php"["line"]=>int(128)["function"]=>string(10) "getContent"["class"]=>string(14) "think\Response"["object"]=>object(think\response\Json)#57 (8) {["options"]=>array(1) {["json_encode_param"]=>int(256)}["contentType"]=>string(16) "application/json"["data"]=>*RECURSION*["charset"]=>string(5) "utf-8"["code"]=>int(200)["allowCache"]=>bool(true)["header"]=>array(1) {["Content-Type"]=>string(31) "application/json; charset=utf-8"}["content"]=>NULL}["type"]=>string(2) "->"["args"]=>array(0) {}}[7]=>array(7) {["file"]=>string(32) "D:\wwwroot\yyex\public\index.php"["line"]=>int(18)["function"]=>string(4) "send"["class"]=>string(14) "think\Response"["object"]=>object(think\response\Json)#57 (8) {["options"]=>array(1) {["json_encode_param"]=>int(256)}["contentType"]=>string(16) "application/json"["data"]=>*RECURSION*["charset"]=>string(5) "utf-8"["code"]=>int(200)["allowCache"]=>bool(true)["header"]=>array(1) {["Content-Type"]=>string(31) "application/json; charset=utf-8"}["content"]=>NULL}["type"]=>string(2) "->"["args"]=>array(0) {}}
}

2:异步消息队列:

tp6+异步任务队列+发送邮件+模型监听_tp6异步下载_Upordo的博客-CSDN博客

3:thinkphp6  + workman 实现即使聊天 通讯:

https://www.cnblogs.com/codehaoran/p/16817231.html

PHP聊天室框架workerman-chat

GitHub - walkor/workerman-chat: Websocket chat room written in PHP based on workerman.

前端聊天模板:lemon imui(gitee)

thinkphp :

 

think PHP libary  Bootstrap类型
http://www.lryc.cn/news/256847.html

相关文章:

  • 【Flutter】创建应用顶级组件,应用根组件 (学习记录)
  • AI材料专题报告:AI革命催生新需求国产替代推动新方向
  • JVM 分析GC日志
  • 阿里云服务器环境配置,ssh免密登录和配置docker
  • 【LeetCode】2621. 睡眠函数
  • 网络入门---TCP通信实现
  • neuq-acm预备队训练week 8 P2661 [NOIP2015 提高组] 信息传递
  • 《C++新经典设计模式》之第18章 备忘录模式
  • OWASP安全练习靶场juice shop-更新中
  • 当使用RSA加密,从手机前端到服务器后端的请求数据存在+
  • BUUCTF crypto做题记录(3)新手向
  • SpringMVC修炼之旅(2)基础入门
  • matlab 最小二乘拟合空间直线(方法二)
  • ASPICE-汽车软件开发能力评级
  • 准确!!!在 CentOS 8 上配置 PostgreSQL 14 的主从复制
  • leetcode 1466
  • 想学编程,但不知道从哪里学起,应该怎么办?
  • Python数据科学视频讲解:Python概述
  • 数据结构之内部排序
  • 软考高级备考-系统架构师(机考后新版教材的备考过程与资料分享)
  • Spring Boot 整合kafka:生产者ack机制和消费者AckMode消费模式、手动提交ACK
  • Java+Swing: 主界面组件布局 整理9
  • pytorch:YOLOV1的pytorch实现
  • YOLOv8配置文件yolov8.yaml解读
  • 4-Tornado高并发原理
  • 基于以太坊的智能合约开发Solidity(事件日志篇)
  • 【BME2112】w11 notes
  • Flutter笔记:滑块及其实现分析1
  • 【React Hooks】useReducer()
  • 如何把kubernetes pod中的文件拷贝到宿主机上或者把宿主机上文件拷贝到kubernetes pod中