thinkphp5使用模型删除与复杂查询EXP

news2024/11/25 20:42:03

模型删除

应用软删除
表中需要有字段,deletetime
模型中使用下面方法

    use SoftDelete;
    protected $deleteTime = 'delete_time';

真实删除

// 软删除
User::destroy(1);
// 真实删除
User::destroy(1,true);
$user = User::get(1);
// 软删除
$user->delete();
// 真实删除
$user->delete(true);

EXP复杂查询

thinkphp的exp语句,支持复杂的查询条件
在这里插入图片描述

还要其他的复杂查询涵盖了mysql所有的复杂查询
https://www.kancloud.cn/manual/thinkphp5/135182

$list=$list->where('','exp', "instr(CONCAT( ',', tags, ',' ),  ',".$tags.",' )");//查找那些tags字段中包含特定$tags值的记录

where(‘’,‘’, ‘exp’, …):这里,前两个参数为空字符串,是因为在使用exp时,通常不需要指定字段名和值,自定义的SQL表达式会直接用于构建条件。

"instr(CONCAT( ',', tags, ',' ),  ',".$tags.",' )"

这部分是自定义的SQL表达式,其作用是检查tags字段值中是否包含某个特定的标签(由变量$tags表示)。

CONCAT( ',', tags, ',' )

这个函数将tags字段值前后各加上逗号,例如,如果tags原值为"tag1,tag2,tag3",则处理后变为",tag1,tag2,tag3,"。这样做的目的是为了方便使用instr函数检查子串是否存在,无论$tags是要查找的标签位于值的开始、中间还是结束,都能准确匹配。

instr(..., ',".$tags.",' )

instr函数用于查找子串位置,它在这里检查刚才构造的带有逗号的字符串中是否包含形如," t a g s " , 的模式,即 tags",的模式,即 tags",的模式,即tags前后各有一个逗号。如果找到匹配项,则返回子串起始位置,否则返回0。在ThinkPHP的上下文中,只要instr的结果不为0,就认为条件满足,即tags字段包含了指定的$tags值。

这里使用原生的sql查询

select * from fa-todo where instr(CONCAT( ',', tags, ',' ),  ’,4,‘)

这里是可以正常运行的,查询数据表中是否有tags字段汉语4的数据

在这里插入图片描述

tp5中save和update的区别
model->where(id,id)->save
这里用了where模型查询会变成query查询,不能再用save
所以改成update能使用

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

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

相关文章

Python批量保存Excel文件中的图表为图片

Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成…

SFTP共享配置

SFTP一般指SSH文件传输协议,在计算机领域,SSH文件传输协议(英语:SSH File Transfer Protocol,也称Secret File Transfer Protocol,中文:安全文件传送协议,英文:Secure FT…

FFmpeg中内存分配和释放相关的源码:av_malloc函数、av_mallocz函数、av_free函数和av_freep函数分析

一、av_malloc函数分析 (一)av_malloc函数的声明 av_malloc函数的声明放在在FFmpeg源码(本文演示用的FFmpeg源码版本为5.0.3,该ffmpeg在CentOS 7.5上通过10.2.1版本的gcc编译)的头文件libavutil/mem.h中:…

nvm 报错https://npm.taobao.org/mirrors/node/index.json 淘宝镜像更换

文章目录 一、问题背景二、解决问题1. 获取配置文件的位置2. 修改配置文件中的镜像源配置3. 修改 npm 镜像源 一、问题背景 使用nvm的时候报错: Could not retrieve https://npm.taobao.org/mirrors/node/index.json. 由于淘宝的镜像域名更换,npm.taobao.org 域名…

Airflow任务流调度

0 前言 Airflow是Airbnb内部发起的一个工作流管理平台。使用Python编写实现的任务管理、调度、监控工作流平台。Airflow的调度依赖于crontab命令,与crontab相比,Airflow可以方便地查看任务的执行状况(执行是否成功、执行时间、执行依赖等&…

Elixir学习笔记——自定义符号

Elixir 提供双引号字符串以及一个称为 charlists 的概念,它们使用 ~c“hello world”符号语法定义。在本章中,我们将了解有关符号的更多信息以及如何定义我们自己的符号。 Elixir 的目标之一是可扩展性:开发人员应该能够扩展语言以适应任何特…

Vatee万腾平台,让智能更懂你

在数字化浪潮席卷全球的今天,智能科技已经渗透到我们生活的方方面面。然而,真正的智能不仅仅是技术的堆砌,更是对人性需求的深刻理解和满足。Vatee万腾平台,正是这样一个让智能更懂你的平台,它以其独特的方式&#xff…

select 下拉框不可选

select 下拉框不可选 disabled和readonlyselect 下拉框不可选择CSS pointer-events 属性 通常情况下,设置表单输入框不可操作的时候会选择使用disabled或者readonly,那么disabled和readonly有什么区别呢? disabled和readonly 首先来说这两个…

vscode插件开发之 - 消息通信

在开发vscode插件过程中,有一个典型场景是webview与extension.ts进行通信,例如,webview上的某些信息发送改变时,需要发送消息传递给extension.ts. 如果使用react框架构建vscode插件的webview,如何实现webview与extensi…

怎么把两个音频合成一个?将两个音频合成一个的四种方法

怎么把两个音频合成一个?在当今数字化的时代,音频处理已经成为我们生活中不可或缺的一部分。有时候,我们会希望将两段音频合成为一个,无论是为了制作音乐混音、创作声音效果,还是为了编辑播客节目或视频配音。合成音频…

硕思闪客精灵软件最新版下载及详细安装教程

闪客精灵(Sothink SWF Decompiler)是一款先进的SWF反编译软件,它不但能捕捉、反编译、查看和提取Shock Wave Flash影片(.swf和.exe格式文件),而且可以将SWF格式文件转化为FLA格式文件。 安 装 包 获 取 地 …

CentOS搭建kubernetes集群详细过程(yum安装方式)

kubernetes集群搭建详细过程(yum安装方式) Kubernetes,也被称为K8s,是一个多功能的容器管理工具,它不仅能够协调和调度容器的部署,而且还能监控容器的健康状况并自动修复常见问题。这个平台是在谷歌十多年…

性能测试、负载测试、压力测试、稳定性测试简单区分【超详细】

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 性能测试是一个总称,可细分为性能测试、负载测试、压力测试、稳定性测试。 性能测试…

XZ后门故事:初始分析

2024年3月29日,Openwall OSS安全邮件列表上的一条消息“炸醒”了整个信息安全、开源和Linux社区:XZ出现了一个CVSS评分10.0的恶意后门。 这个后门库的特殊危险在于OpenSSH服务器进程sshd使用它。在多个基于systemd的发行版上(包括Ubuntu、De…

二叉树-根据先序遍历和中序遍历序列重建二叉树

目录 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质: 2.确定根节点及左右子树 3.对子树进行递归操作 4.递归返回条件 三、代码实现 四、刷题链接 一、问题描述 二、解题思路 1.首先明确先序遍历和中序遍历的性质: 先序遍历&am…

基于ChatGPT-4o自然科学研究全流程实践技术应用

自然科学研究遵循严谨的科学方法论,包括文献调研、问题综述、试验设计、提出假设、数据清洗、统计诊断、大数据分析、经典统计模型(回归模型、混合效应模型、结构方程模型、Meta分析模型)、参数优化、机器/深度学习、大尺度模型构建与模拟、论…

Centos7 安装oracle 11.2.0.4

荆轲刺秦王 1. 准备工作 需要下载 Oracle 11g 安装包 2.HostName修改: hostnamectl set-hostname oracle 3. 配置hostname(本机IP映射)注意:192.168.116.129 需要换乘本地ip vi /etc/hosts 192.168.116.129 oracle # 测试hos…

企业用户使用OV SSL证书趋势增长

随着网络安全的需求度日益提高,https证书也成为了当下最受欢迎的数字证书之一,主要是用于保护网站和应用程序的安全,并提升用户对网站的信任度,且只有企业或组织才可申请。 OV SSL证书全称Organization Validation SSL(组织验证性…

【前端】Nesj 学习笔记

1、前置知识 1.1 装饰器 装饰器的类型 declare type ClassDecorator <TFunction extends Function>(target: TFunction) > TFunction | void; declare type PropertyDecorator (target: Object, propertyKey: string | symbol) > void; declare type MethodDe…

CMSIS-RTOS2简介

本文介绍CMSIS-RTOS2。 1.引入 CMSIS-RTOS2在基于Arm Cortex处理器的设备上运行的实时操作系统内核上指定了通用RTOS接口。应用程序和中间件组件可以使用CMSIS-RTOS2 API在各种软件生态系统中实现更好的代码重用和更简单的集成。 CMSIS-RTOS2还指定了RTOS内核使用的标准OS T…