ThinkPHP

ThinkPHP5

时光怂恿深爱的人放手 提交于 2020-10-28 10:15:25
select对象转数组 修改 config/database.php 'resultset_type' => '\think\Collection', 或者使用toArray(); 来源: oschina 链接: https://my.oschina.net/u/3477605/blog/3019357

thinkphp5一些文件夹用法

非 Y 不嫁゛ 提交于 2020-10-28 09:08:33
一、vendor通常放一些第三方的文件,如短信、支付宝等。用法:   1、在vendor中建一个文件夹; 2、在文件夹中新建一个类:主要命名空间(没有vendor );如下面:        3、在控制器中调用,除了通当调用命名空间外,还要使用一个vendor("te.Tess).如: 二、extend是通过手动的方法直接把第三方扩展库或者自己写的封装库直接引入到目录里,调用方法的实例:   1、在extend文件目中新建一个文件夹。   2、在文件夹中新建一个类;命名空间中不能有extend;如:        3、在控制器中调用:    三、common文件夹是公共模块:在文件夹中建立公共的控制器、类。 四、common.php是公共方法:常用于写一些公共的方法:系统默认自动加载。真接使用里面的方法。 五、extra文件夹放配置文件 来源: oschina 链接: https://my.oschina.net/u/4339058/blog/3896534

干货分享—Niushop数据库配置

不问归期 提交于 2020-10-27 19:15:10
前几期阿牛 ger主讲了代码编码规范,整洁规范的代码有利于我们查询和再次开发,也方便我们检测与修复bug!这期,阿牛ger主要与大家分享数据库编码配置: 数据库配置 Niushop数据库配置方式与thinkphp相同,文件路径:config/database.php <?php use think\facade\Env; return [ // 默认使用的数据库连接配置 'default' => 'mysql', // 自定义时间查询规则 'time_query_rule' => [], // 自动写入时间戳字段 // true为自动识别类型 false关闭 // 字符串则明确指定时间字段类型 支持 int timestamp datetime date 'auto_timestamp' => true, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 数据库连接配置信息 'connections' => [ 'mysql' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '******', // 数据库名 'database' => '****', // 用户名 'username' => '*****', // 密码 'password' => '*

thinkphp5 链式操作join用法

筅森魡賤 提交于 2020-10-14 16:03:44
join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。 INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN: 只要其中一个表中存在匹配,就返回行 www.tk-acc.com 模型对象 举例 Db::table('think_artist') ->alias('a') ->join('think_work w','a.id = w.artist_id') ->join('think_card c','a.card_id = c.id') ->select(); Db::table('think_artist') ->alias('a') ->join(' WORK w','a.id = w.artist_id') ->join(' CARD c','a.card_id = c.id') ->select(); $join = [ ['think_work w','a.id=w.artist_id'], ['think_card c','a.card_id=c.id'], ]; Db::table('think_user')->alias('a')->join($join)

thinkphp5 链式操作group分组用法

余生长醉 提交于 2020-10-13 09:53:05
GROUP方法也是连贯操作方法之一,通常用于结合合计函数,根据一个或多个列对结果集进行分组 。 group方法只有一个参数,并且只能使用字符串。 例如,我们都查询结果按照用户id进行分组统计: Db::table('think_user') ->field('user_id,username,max(score)') ->group('user_id') ->select(); 生成的SQL语句是: SELECT user_id,username,max(score) FROM think_score GROUP BY user_id 也支持对多个字段进行分组,例如: Db::table('think_user') ->field('user_id,test_time,username,max(score)') ->group('user_id,www.benchicnc.com) ->select(); 生成的SQL语句是: SELECT user_id,test_time,username,max(score) FROM think_score GROUP BY user_id,test_time 来源: oschina 链接: https://my.oschina.net/u/4419312/blog/4670926

php7异常与错误处理和自定义异常

青春壹個敷衍的年華 提交于 2020-10-12 20:31:44
7.2版本异常与错误的概述 什么叫做异常? 异常是指程序运行中不符合预期情况以及与正常流程不同的状况。 比如你链接数据库,在参数都写上去的条件下,发现链接不上去,这就属于不符合预期 可以被 try-catch 捕捉得到 什么叫做错误? 是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况。 平时遇到的 warming、notice都是错误,只是级别不同而已。 例如: TypeError(类型错误) 我规定的函数参数类型和传入的参数不一致 ArithmeticError (算数错误) ParseError (解析错误)在调入的文件中,include "demo.php",或者 eval();中有语法错误造成解析失败 AssertionError(断言错误)当assert生效时产生该错误 DivisionByZeroError (分母为零) 运算过程中例如除法,分母为0 除了这几种情况,其余全部为异常 异常处理 在以前的 php5.X 中 并且不能被 try-catch 捕捉得到,到了 php 7.x 中,定义了一个 Throwable 接口 并使得大部分的 Error 和 Exception 实现了该接口,我们得以在 try-catch 中抛出该错误 所以说以后想要捕获异常,而你又不知道此异常是 Error 还是

ThinkPHP6.0 + Vue + ElementUI + axios 的环境安装到实现 CURD 操作!

戏子无情 提交于 2020-10-07 01:02:31
官方文档地址: ​ ThinkPHP6.0: https://www.kancloud.cn/manual/thinkphp6_0/1037479 ​ ElemetUI: https://element.eleme.cn/#/zh-CN ​ axios: https://www.kancloud.cn/yunye/axios/234845 ​ Vue: https://cn.vuejs.org/v2/guide 创建码云仓库 克隆到本地 git clone 你自己的仓库地址 0608 创建数据库 -- 创建数据库 0608 create database `0608` charset utf8; -- 创建数据表 user create table `user` ( `id` int(11) primary key auto_increment comment '用户ID', `name` varchar(30) not null default '未知' comment '用户名', `pwd` varchar(32) not null default '未知' comment '用户密码' ) engine = InnoDB; -- 给 user.name 添加唯一索引 alter table `user` add unique key u_name(`name`); -- 给

ThinkPHP5 链式操作where用法

可紊 提交于 2020-10-06 09:06:53
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。 表达式查询 新版的表达式查询采用全新的方式,查询表达式的使用格式: Db::table('think_user') ->where('id','>',1) ->where('name','thinkphp') ->select(); 更多的表达式查询语法,可以参考查询语法部分。 数组条件 可以通过数组方式批量设置查询条件。 普通查询 最简单的数组查询方式如下: $map['name'] = 'thinkphp'; $map['status'] = 1; // 把查询条件传入查询方法 Db::table('think_user')->where($map)->select(); // 助手函数 db('user')->where($map)->select(); 表达式查询 可以在数组条件中使用查询表达式,例如: $map['id'] = ['>',1]; $map['mail'] = ['like','www.djznrobot.com']; Db::table('think_user')->where($map)->select

基于workerman的实时推送(摒弃ajax轮询)

痴心易碎 提交于 2020-10-03 02:56:14
先扯些这些内容: TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有: TCP包括FTP、HTTP、TELNET、SMTP等协议 UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使用都保持连接,但安全性较差。 http的长连接 HTTP也可以建立长连接的,使用Connection:keep-alive,HTTP 1.1默认进行持久连接。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的。 什么时候用长连接,短连接? 长连接多用于操作频繁,点对点的通讯,而且连接数不能太多情况,。每个TCP连接都需要三步握手,这需要时间,如果每个操作都是先连接,再操作的话那么处理速度会降低很多