thinkphp 多条件查询 不起作用 = like

news2024/11/18 11:42:20

 不起作用的代码:  ( where(['category_id' => $item['id']]) 没起作用  )  传递参数
$model->where('product_name', 'like', "%$productName%") 不起作用

public function cateProductPage()
{
    $builder = new Builder(new CategoryModel());
    $builder->setDefaultSort('sort,ASC');
    $builder->setFilter(['pid' => -1]);
    $lists = $builder->selectQuery(function (BaseQuery $query) {
    })->select();

    $productName = $this->request->post('product_name', '');
    $model =  new ProductModel();
    if ($lists->toArray()) {
        foreach ($lists as &$value) {
            // 二级分类 名
            $value['c_names'] = (new CategoryModel())->where(['pid' => $value['id']])->field('id,name')->select();
            // 二级分类商品
            foreach ( $value['c_names'] as &$item){
                
                $item['good'] =  $model->where(['category_id' => $item['id']]);
                if (!empty($productName)) {
                    $model->where('product_name', 'like', "%$productName%")->select();
                }
                $item['good']  = $model->select();
                // 提取标签中的 ‘约500g/份 约10-20 只'  约的展示 与 标签不展示在一起了
                foreach ($item['good'] as &$index) {
                    $pattern = '/约[^,]*/';
                    preg_match_all($pattern, implode(', ',$index['tags']), $matches);

                    $index['tag'] =  explode(',', implode(",", $matches[0]));
                }


            }

            $where = [];
            $user = $this->request->getUser();
            if ($user) {
                $where[] = ['is_view', 'find in set', $user['user_type']];
            }
            $pro = (new ProductModel())->with(['sku', 'ranks', 'category'])->whereRaw('concat(\' \',category_id,\' \') like "% ' . $value['id'] . ' %"')->where('status', '10')->where($where)->order([
                'sort' => 'ASC',
                'id' => 'DESC',
            ])->select();
            $value['product'] = $pro;

        }

        unset($value);
        unset($item);
        unset($index);

    }
    return $lists;
}

 日志:

起作用的代码:

public function cateProductPage()
    {
        $builder = new Builder(new CategoryModel());
        $builder->setDefaultSort('sort,ASC');
        $builder->setFilter(['pid' => -1]);
        $lists = $builder->selectQuery(function (BaseQuery $query) {
        })->select();

        $productName = $this->request->post('product_name', '');
        $model =  new ProductModel();
        if ($lists->toArray()) {
            foreach ($lists as &$value) {
                // 二级分类 名
                $value['c_names'] = (new CategoryModel())->where(['pid' => $value['id']])->field('id,name')->select();
                // 二级分类商品
                foreach ( $value['c_names'] as &$item){
                    $item['good'] =  $model->where(['category_id' => $item['id']])->where(function ($query) use($productName) {
                        if(!empty($productName)){
                            $query->where('product_name', 'like', "%$productName%");

                        }
                    })->select();


                    // 提取标签中的 ‘约500g/份 约10-20 只'  约的展示 与 标签不展示在一起了
                    foreach ($item['good'] as &$index) {
                        $pattern = '/约[^,]*/';
                        preg_match_all($pattern, implode(', ',$index['tags']), $matches);

                        $index['tag'] =  explode(',', implode(",", $matches[0]));
                    }


                }

                $where = [];
                $user = $this->request->getUser();
                if ($user) {
                    $where[] = ['is_view', 'find in set', $user['user_type']];
                }
                $pro = (new ProductModel())->with(['sku', 'ranks', 'category'])->whereRaw('concat(\' \',category_id,\' \') like "% ' . $value['id'] . ' %"')->where('status', '10')->where($where)->order([
                    'sort' => 'ASC',
                    'id' => 'DESC',
                ])->select();
                $value['product'] = $pro;

            }

            unset($value);
            unset($item);
            unset($index);

        }
        return $lists;
    }

 日志:

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

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

相关文章

基于transformers框架实践Bert系列4-文本相似度

本系列用于Bert模型实践实际场景,分别包括分类器、命名实体识别、选择题、文本摘要等等。(关于Bert的结构和详细这里就不做讲解,但了解Bert的基本结构是做实践的基础,因此看本系列之前,最好了解一下transformers和Bert…

利用神经网络学习语言(一)——自然语言处理的基本要素

相关说明 这篇文章的大部分内容参考自我的新书《解构大语言模型:从线性回归到通用人工智能》,欢迎有兴趣的读者多多支持。 本文涉及到的代码链接如下:regression2chatgpt/ch10_rnn/tokenizer.ipynb 本系列文章将深入探讨一种应用广泛的神经…

hcia datacom学习(8):静态NAT、动态NAT、NAPT、Easy IP、NAT server

1.私网地址 在现实环境中,企业、家庭使用的网络是私网地址(内网),运营商维护的网络则是公网地址(外网)。私网地址是在局域网(LAN)内使用的,因此无法被路由,不…

计算机毕业设计 | springboot药品库存追踪与管理系统 药店管理(附源码)

1,绪论 1.1 背景调研 如今药品调价频繁,且品种繁多,增加了药品销售定价的难度。药品来货验收登记中的审查有效期环节容易出错,错收过期或有效期不足的药品。 手工模式下的药品库存难以及时掌握,虽然采取了每日进行缺…

5.23.1 深度学习在乳腺癌成像中的应用

乳腺成像在早期发现乳腺癌以及在治疗期间监测和评估乳腺癌方面发挥着重要作用。最常用的乳腺成像方式是数字乳房X线摄影、数字乳腺断层合成、超声和磁共振成像。 传统的 CAD 系统基于传统的机器学习 (ML) 技术;预定义(手工制作)的特征是系统…

元器件基础学习笔记——电感的分类及主要参数

一、电感的分类 电感器是一种电子元件,它能够将电能转化为磁能并储存起来。电感器的分类方法有很多,可以根据用途、形状、结构等不同的标准进行划分。 分类依据类型备注电感值固定电感固定线圈可变电感改变磁芯的饱和度用途高频电感绕线型,积…

Nest的test中的best是Jest框架

Nest的test中的best是Jest框架 前言 花了3天时间给自己之前做的一个小系统基本补完了单元测试,趁此机会>脑袋里对于单元测试的知识还算热乎,来输出一篇比较详细的关于单元测试的文章,以梳理知识,融汇贯通;如果对你…

配置旁挂二层组网直接转发示例(命令行)

业务需求 企业用户通过WLAN接入网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响用户的业务使用。 组网需求 AC组网方式:旁挂二层组网。DHCP部署方式: AC作为DHCP服务器为AP分配IP地址。汇聚交换机SwitchB作…

vue小记——小组件(1)

代码&#xff1a; <template><div><el-steps :active"active" finish-status"success" simple><el-step title"数据导入"><i class"fa fa-cloud-upload fa-icon-custom" slot"icon"></i…

Docker搭建mysql性能测试环境

OpenEuler使用Docker搭建mysql性能测试环境 一、安装Docker二、docker安装mysql三、测试mysql连接 一、安装Docker 建立源文件vim /etc/yum.repos.d/docker-ce.repo增加内容[docker-ce-stable] nameDocker CE Stable - $basearch baseurlhttps://repo.huaweicloud.com/docker…

【手势识别-UIPinchGestureRecognizer捏合-UIPanGestureRecognizer缩放 Objective-C语言】

一、接下来,我们来说这个捏合,和,这个缩放啊 1.捏合, 首先呢,步骤,也都是一样的啊, 1)创建手势对象 2)添加手势 3)实现手势方法 pinch:捏合 UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:(id) action:(SEL)]; U…

ThreadLocal原理及使用

一、引言 在Java多线程编程中&#xff0c;ThreadLocal是一个非常有用的工具&#xff0c;它提供了一种将对象与线程关联起来的机制&#xff0c;使得每个线程都可以拥有自己独立的对象副本&#xff0c;从而避免了线程安全问题。然而&#xff0c;使用不当会导致内存泄漏问题。 二…

spring-boot整合Micrometer+Prometheus

环境&#xff1a; micrometer 1.8.2 prometheus 0.14.1 spring-boot-actuator 2.6.6 使用案例 <!-- Springboot启动actuator&#xff0c;默认会引入依赖&#xff1a;micrometer-core --> <dependency><groupId>org.springframework.boot</groupId>&l…

ctfhub中的SSRF相关例题(中)

目录 上传文件 gopher协议的工作原理&#xff1a; gopher协议的使用方法&#xff1a; 相关例题: FastCGI协议 FastCGI协议知识点 相关例题&#xff1a; Redis协议 知识点&#xff1a; 相关例题 第一种方法 第二种方法 上传文件 gopher协议的工作原理&#xff1a; …

《ESP8266通信指南》番外-(附完整代码)ESP8266获取DHT11接入(基于Lua)

前言 此篇为番外篇,是 ESP8266 入门的其他功能教程,包括但不限于 DHT11 驱动TCP 通信Thingsboard 平台的接入阿里云物联网云平台接入华为云平台接入 1. 小节目标 使用 Lua 驱动 DHT11 传感器,获取温湿度的值 2. 进入主题 NodeMCU 基于 LUA 相关资料 官方文档&#xff1a;…

商品指数创年内新高,粘性通胀成为美联储噩梦

文章概述 虽然美国4月CPI增幅放缓让美联储今年降息的可能性大增&#xff0c;但与此同时&#xff0c;大宗商品价格却达到了一年来的最高水平&#xff0c;粘性通胀可能成为美联储的噩梦。数据显示&#xff0c;跟踪24种能源、金属和农业合约彭博大宗商品现货指数今年以来已经上涨…

Mysql超详细安装配置教程(保姆级图文)

MySQL是一种流行的开源关系型数据库管理系统&#xff0c;它广泛用于网站和服务的数据存储和管理。MySQL以其高性能、可靠性和易用性而闻名&#xff0c;是许多Web应用程序的首选数据库解决方案之一。 一、下载安装包 &#xff08;1&#xff09;从网盘下载安装文件 点击此处直…

RK3588 Android13 TvSetting 中增加字体样式切换功能

前言 电视产品,客户需求又升级了,有了切换字体大小还不行,还得增加动态切换字体样式功能, 同样需要在设备偏好设置子菜单里的显示和声音二级菜单里增加字体样式菜单功能,开整。 效果图 framework 部分修改文件清单 frameworks/base/data/fonts/fonts.mk frameworks/bas…

附代码:策略常用-正余弦优化算法

正余弦优化算法作为群智能优化算法的一种, 正弦余弦算法 (sine cosine algorithm, SCA) 是 2016 年由 Mirjalili 提出的一种新型仿自然优化算法, 通过创建多个随机候选解, 利用正余弦函数的数学性质来平衡算法在搜系过程中的全局探索和局部开发能力。该算法具有结构简单、参数少…

MobaXterm:Network error: Connection refused

问题描述 使用MobaXterm连接服务器或者虚拟机里面的操作系统显示“Network error: Connection refused” 因为服务器或者虚拟机里面的操作系统没安装 ssh 解决方法 安装ssh sudo apt-get update sudo apt-get upgrade sudo apt-get install ssh重启 ssh service ssh resta…