thinkphp todo

news2024/11/27 19:46:47

来由:

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

新奇的写法如下:

逻辑层的代码:

  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);

    }

模型层的代码:

<?php

namespace 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 : null

    public 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) {
    }
  }
}

 

                

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1291540.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea新建spring boot starter

什么是spring boot starter Spring Boot Starter 是一种 Maven 或 Gradle 依赖&#xff0c;它能够轻松地将相关库和框架集成到 Spring Boot 应用程序中。Starter 是一种对常见依赖项和设置的易于复用的封装&#xff0c;它们通常被开发人员用于创建可插拔的 Spring Boot 应用程序…

Java UDP 多人聊天室简易版

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

景联文科技:高质量垂直领域数据集助力AI技术突破

随着人工智能技术的飞速发展&#xff0c;垂直领域数据集在提升模型性能、解决领域问题、推动创新应用以及提升竞争力等方面的重要性日益凸显。 提高模型性能&#xff1a;垂直领域数据集专注于特定任务或领域&#xff0c;使用这些数据集进行训练可以让模型更好地理解和解决特定领…

安防音频接口选型的高性能国产芯片分析

在人工智能兴起之后&#xff0c;安防市场就成为了其全球最大的市场&#xff0c;也是成功落地的最主要场景之一。对于安防应用而言&#xff0c;智慧摄像头、智慧交通、智慧城市等概念的不断涌现&#xff0c;对于芯片产业催生出海量需求。今天&#xff0c;我将为大家梳理GLOBALCH…

得帆云助力容百科技构建CRM系统,实现LTC全流程管理

宁波容百新能源科技股份有限公司 宁波容百新能源科技股份有限公司&#xff08;以下简称“容百科技”&#xff09;于2014年9月建立&#xff0c;是高科技新能源材料行业的跨国型集团公司。专业从事锂电池正极材料的研发、生产和销售&#xff0c;于2019年登陆上交所科创板&#x…

CV计算机视觉每日开源代码Paper with code速览-2023.12.1

点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构&#xff1a;Transformer】TransNeXt: Robust Foveal Visual Perception for Vision Transformers 论文地址&#xff1a;http…

Java聊天

一对一聊天 服务端 package 一对一用户;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.…

【问题思考】泰勒公式证明题如何选展开点?【对称美】

我的证明题水平很烂&#xff0c;这个纯属让自己有一个初步的理解&#xff0c;恳请指正&#xff01; 问题 我们可以看到这里有两种展开方式&#xff08;注意&#xff1a;x0叫展开点&#xff09;&#xff0c;分别是正确的做法&#xff0c;在x0展开&#xff0c;然后将0和a代入fx中…

【JavaEE】生产者消费者模式

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

【开源】基于JAVA的天沐瑜伽馆管理系统

项目编号&#xff1a; S 039 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S039&#xff0c;文末获取源码。} 项目编号&#xff1a;S039&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 瑜伽课程模块2.3 课…

线程池基础参数和执行流程

线程池核心参数 1.corePoolSize:线程池中核心线程的个数。 2.maximumPoolSize:线程池中线程的总数。&#xff08;线程总数核心线程数 救急线程数&#xff09; 3. keepAliveTime:救急线程的存活时间。&#xff08;救急线程空闲时的存活时间。&#xff09; 4.unit:存活时间的…

numpy数据读取保存及速度测试

目录 数据保存及读取 速度比对测试 数据保存及读取 代码示例&#xff1a; # 导入必要的库 import numpy as np # 生成测试数据 arr_disk np.arange(8) # 打印生成能的数据 print(arr_disk) # numpy保存数据到本地 np.save("arr_disk", arr_disk) # 加载本地数据…

gpt3、gpt2与gpt1区别

参考&#xff1a;深度学习&#xff1a;GPT1、GPT2、GPT-3_HanZee的博客-CSDN博客 Zero-shot Learning / One-shot Learning-CSDN博客 Zero-shot&#xff08;零次学习&#xff09;简介-CSDN博客 GPT-2 模型由多层单向transformer的解码器部分构成&#xff0c;本质上是自回归模型…

软件系统应用开发安全指南

2.1.应用系统架构安全设计要求 2.2.应用系统软件功能安全设计要求 2.3.应用系统存储安全设计要求 2.4.应用系统通讯安全设计要求 2.5.应用系统数据库安全设计要求 2.6.应用系统数据安全设计要求 全资料获取进主页。

C、C++、C#的区别概述

C、C、C#的区别概述 https://link.zhihu.com/?targethttps%3A//csharp-station.com/understanding-the-differences-between-c-c-and-c/文章翻译源于此链接 01、C语言 ​ Dennis Ritchie在1972年创造了C语言并在1978年公布。Ritchie设计C的初衷是用于开发新版本的Unix。在那之…

关于DWC OTG2.0中PFC的理解

在DWC OTG2.0 Controller手册中&#xff0c;有一章节专门介绍了PFC&#xff0c;Packet FIFO Controller。其内部分为共享FIFO&#xff08;shared FIFO&#xff09;以及专用FIFO&#xff08;Dedicated FIFO&#xff09;&#xff0c;并针对dev和host两种模式&#xff0c;并且还要…

IT行业软件数据文件传输安全与高效是如何保障的?

在当今迅速发展的科技世界中&#xff0c;云计算、大数据、移动互联网等信息技术正迎来蓬勃发展&#xff0c;IT行业正置身于一个全新的世界。数据不仅是最重要的资产&#xff0c;也是企业竞争力的核心所在。然而&#xff0c;如何缩短信息共享时间、高速流转数据、跨部门/跨区域协…

智能优化算法应用:基于鹰栖息算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于鹰栖息算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于鹰栖息算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鹰栖息算法4.实验参数设定5.算法结果6.参考文献7.…

Linux--文件权限与shell外壳的理解

目录 一.Linux的用户与用户切换&#xff0c;提权 二.对文件权限的理解 1.文件权限角色的权限文件属性 2.Linux中的三种角色 3.为什么会存在所属组这个角色 4.文件属性的意义 4.1.第一个字母的意义 4.2 第2——第10个字母的意义 4.3修改文件权限的方法 三.目录权限 四…

记录 | linux手动清理 buff/cache

linux下手动清理 buff/cache 切换到 root 权限 # 这个drop_caches文件可以设置的值分别为1、2、3 echo 1 > /proc/sys/vm/drop_caches # 表示清除pagecache echo 2 > /proc/sys/vm/drop_caches # 表示清除回收slab分配器中的对象&#xff08;包括目录项缓存和inode缓…