齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用
列举了几个常用的查询进行简单封装,虽然系统也有内置的但是很多人不大会就二次封装简化了一下。
这里只封装了一个条件 多个条件的自己再封装或者用标签解决比较好 这里只是说fun可以万能调用
1获取任意表的某个字段的值
我要查询一个内容的字段值怎么查?~~~
fun('wanneng@get_value',2,'cms_content1','picurl')
查询cms中id 为2的picurl 字段 直接返回这个内容的图片
fun('wanneng@get_value',2,'cms_content1','view');
直接返回他的浏览量
可以看出,只要最后一项是数据库中的字段即可返回对应的值,没有多余的查询。
那么极限要求下 返回UID为1的一个内容标题怎么办?(这里仅作为示例 一般不这么查询 一般是查询唯一索引)
fun('wanneng@get_value',1,'cms_content1','title','uid');
这样我们就返回了 uid为1的第一条数据的标题 其他字段的值只需要更改 title 即可
条件只需要变更 uid 就可以了。
fun('wanneng@get_value',20,'cms_content1','title','fid');
这就是返回fid等于20的一个数据的标题
## 2**某个条件下的全部字段值**
上面的只能返回一个值,那么有时候我们需要很多值的时候就不适合了
[https://x1.php168.com/bbs/show-12541.html](https://x1.php168.com/bbs/show-12541.html)
这里有按id查询的 已经可以满足99.9%的需求了。这里也是顺便封装了一下基本是一样的。
那么这里也可以返回全部的值
fun('wanneng@get_find',2,'cms_content1');
这是返回id为2的全部字段值 返回的是一个数组
极限情况下,我不是按id查询能返回码 答案是可以的
fun('wanneng@get_find',20,'cms_content1','fid');
我们返回fid等于20的一条数据
可以看出,这个查询 第一项是值 第二项是 数据表 第三项是查询字段 可以为空默认为id
## 4**任意数据表中的全部列**
我想获取一个用户下全部的信息怎么查询?上面的都是只能查询一条 下面的办法可以查询全部数据。
fun('wanneng@get_select',1,'cms_content1','uid');
这就是查询uid为1的全部数据
我想查询fid为20的全部数据
fun('wanneng@get_select',20,'cms_content1');
可以看出 第一项是查询条件的值 第二个是数据表 第三项是查询的条件 默认为fid可以不写
## 5**任意数据表中某一列的值**
上面的查询已经可以满足很多场景了,再极限的情况下 我想调用一个条件下的某列值 但是我又不想用select
那么也是可以的,这个调用稍微比较复杂一点点,但是使用场景还是比较多的 主要用到是单选 下拉等等
fun('wanneng@get_column',105,'cms_content1','id,uid,title','view');
调用 浏览量为105的全部数据,返回的是一个数组 他的键也就是索引就是我们返回信息的主键id值。
第一项为查询的值 第二项为数据库名**第三项为我们返回的列的字段名 第一个必须为主键索引**第三项为查询的字段名
fun('wanneng@get_column',20,'cms_content1','id,uid,title','fid');
这些模板都可以用,模板怎么用这里不再普及教学了,上面的这些只是封装示例,自己可以封装为自己喜欢的类型 当然了封装也没啥意义只是使用起来方便一点点。
使用方法 application\common\fun 建立 Wanneng.php
<?php
namespace app\common\fun;
use think\Db;
/**
* 万能数据表调用
* Class Wanneng
*/
class Wanneng{
/**
* 任意数据表中的一个字段值 fun('wanneng@get_value',2,'cms_content1','picurl')
* 查询cms中 id为2的标题
* $value=fun('wanneng@get_value',2,'cms_content1','title');
* 查询cms中 id 为2的浏览量
* $value=fun('wanneng@get_value',2,'cms_content1','view');
* 查询cms中 fid 为20的一个内容标题
* $value=fun('wanneng@get_value',20,'cms_content1','title','fid');
* @param $id 查询的值
* @param $table 查询的表
* @param string $type 查询的条件 默认为id 和查询的值是相关的
* @param $name 返回的字段值 默认为title
* @return mixed 查询存在直接返回值 不存在返回 null
*/
public function get_value($id,$table,$name='title',$type="id"){
$map=[];
$map[$type]=$id;
$value=Db::name($table)->where($map)->value($name);
return $value;
}
/**
* 任意数据表中的全部字段值
* 查询cms中 id为2的全部信息
* $value=fun('wanneng@get_find',2,'cms_content1');
* 查询fid为20的一条数据 这个数据是第一条发布的
* $value=fun('wanneng@get_find',20,'cms_content1','fid');
* @param $id 查询的值
* @param $table 查询的表
* @param string $type 查询值的条件
* @return 返回查询字段的全部值 结果不存在返回null
*/
public function get_find($id,$table,$type="id"){
$map=[];
$map[$type]=$id;
$find=Db::name($table)->where($map)->find();
return $find;
}
/**
* 任意数据表中的全部列
* 查询cms中 uid为1的全部信息
* $value=fun('wanneng@get_select',1,'cms_content1','uid');
* 查询fid为20的全部数据
* $value=fun('wanneng@get_select',20,'cms_content1');
* @param $id 查询的值
* @param $table 查询的表
* @param string $type 查询值的条件
* @return 返回全部数据的数组 为空返回空数据
*/
public function get_select($id,$table,$type="fid"){
$select=[];
$map=[];
$map[$type]=$id;
$select=Db::name($table)->where($map)->select();
return $select;
}
/**
* 任意数据表中某一列的值
* 查询cms中 浏览量为105的uid id title
* $value=fun('wanneng@get_column',105,'cms_content1','id,uid,title','view');
* @param $id 查询的值
* @param $table 查询的表
* @param string $name 查询的字段 可以为多个 用,隔开 例如:id,title,picurl 第一项必须为主键索引
* @param string $type 查询的条件
* @return mixed
*/
public function get_column($id,$table,$name='title',$type="id"){
$map=[];
$map[$type]=$id;
$column=Db::name($table)->where($map)->column($name);
return $column;
}
}
齐博x1 万能fun 调用任意数据表 任意字段就是这么任性调用的更多相关文章
- 齐博x1万能数据统计接口
为何叫万能数据统计接口呢?因为可以调用全站任何数据表的数据总条数,并且可以设置查询条件http://qb.net/index.php/index/wxapp.count.html?table=memb ...
- 齐博x1万能数据统计之fun函数
使用 fun("count@info",'数据表名','用户uid') 可以统计指定任何数据表的记录条数 fun("count@info",'cms_conte ...
- 齐博x1如何调试查找全站的表单提交接口参数
H5.PC.WAP端的所有提交POST表单操作都是可以当作接口来用的. 比如我们通过PC或WAP浏览器打开相应要修改的界面,然后浏览器进入开发者模式,就可以追踪到所提交的变量参数.你在APP里边只要指 ...
- 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)
password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...
- 齐博x1到底是怎么的存在?
齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. 系统已经对接好QQ.微信登录,同 ...
- 齐博X1到底是个什么鬼?
什么是齐博/齐博CMS之X1? 齐博X1是齐博软件基于thinkphp5开发的内容管理系统,拓展性非常强,后台一键升级,后台提供丰富的频道模块云市插件市场.风格市场.钩子市场,所有都是一键在线安装. ...
- 最近无聊搭建一个齐博X1的下载页面
https://layui.wanxiangsucai.com/ 用layui官方镜像站的模版 改了个齐博X1的下载页面 https://x1.wanxiangsucai.com/ 哈哈哈!!! 还有 ...
- 齐博x1齐博首创钩子的使用方法
齐博X1有两套钩子体系,第一套是基于TP思路设计的.跟外面的大同小异.现在重点讲一下第二套我们首创的使用方法. 首先说一下如何埋钩子,这个跟TP思路的钩子类似,就是在页面的任何地方加入如下代码即可如下 ...
- 齐博x1模板中常用的TP标签数据处理
上图是比较常用的, 而下图是比较特殊的场合,比如幻灯片可能会用到 下图使用了TP的循环标签. 上图只使用了条件判断标签 上图不存在 val="xxx" 这个参数,所以会自动循环输出 ...
随机推荐
- [GYCTF2020]Ezsqli-1|SQL注入
1.打开界面之后在输入框进行输入测试,分别输入1.2.3.'等字符,结果如下: 2.看到bool(false)这里我想到了bool注入,因为之前做过这道题:https://www.cnblogs.co ...
- 如何构建 Apache DolphinScheduler 的 Docker 镜像
继昨日发布第一个 [官方 Docker 镜像] 后,有几位小伙伴私信想自己进行编译,这里也将 Docker 的主要贡献者文禾同学整理的文档进行分享.以下是全文内容: 您能够在类 Unix 系统和 Wi ...
- LuoguP1456 Monkey King (左偏树)
struct LeftTree{ int l,r,val,dis; }t[N]; int fa[N]; inline int Find(int x){ return x == fa[x] ? x : ...
- java学习第三天常用类.day12
String String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了 如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & String ...
- 使springAOP生效不一定要加@EnableAspectJAutoProxy注解
在上篇文章<springAOP和AspectJ有关系吗?如何使用springAOP面向切面编程>中遗留了一个问题,那就是在springboot中使用springAOP需要加@EnableA ...
- 想学渗透测试,应该考CISP-PTE还是NISP-PT?|网安伴nisp和cisp
其实两者都可,但要看考生的实际需求! 为什么说两者都可以? 两个证书都由中国信息安全测评中心颁发,CISP-PTE全称国家注册渗透测试工程师,NISP-PT全称国家信息安全水平考试-渗透测试工程师专项 ...
- 如何结合整洁架构和MVP模式提升前端开发体验 - 整体架构篇
本文不详细介绍什么是整洁架构以及 MVP 模式,自行查看文章结尾相关链接文章. 整洁架构粗略介绍 下图为整洁架构最原始的结构图: Entities/Models:实体层,官方说法就是封装了企业里最通用 ...
- iOS 组件化及二进制化的探索
组件化的优缺点 组件化的拆分 组件与组件之间如何进行通讯(路由) 从Cocopods拉取代码的过程 远程索引库里很多的.spec文件,该文件记录了很多内容,如用户名,框架名称,描述,框架的地址 Pod ...
- day01-GUI坦克大战01
JavaGUI-坦克大战 1.Java绘图坐标体系 坐标体系介绍:下图说明了一个Java坐标体系.坐标原点位于左上角,以像素为单位.在Java坐标体系中,第一个是x坐标,表示当前位置为水平方向,距离坐 ...
- [SDR] GNU Radio 系列教程(一) —— 什么是 GNU Radio
目录 1.GNU Radio 是什么 2.我为什么要用 GNU Radio 3.数字信号处理 3.1 一点信号理论 3.2 将数字信号处理应用于无线电传输 4.基于流程图的模块化数字信号处理方法 本文 ...