thinkphp5.1
人生如初见_张默
这个作者很懒,什么都没留下…
展开
-
thinkphp3.2助手函数与thinkphp5.1助手函数对照表
3.2版本 5.0版本 C config E exception G debug L lang T 废除 I input N 废除 D model M db A controller R action B 废除 U url W widget S...原创 2020-04-23 17:35:57 · 519 阅读 · 0 评论 -
thinkphp5.1---生成二维码
use Endroid\QrCode\QrCode; // 二维码use Endroid\QrCode\ErrorCorrectionLevel; // 二维码use Endroid\QrCode\Response\QrCodeResponse;function qrcode($data_str,$file) {$qr_code = new QrCode();$qr_code->...原创 2019-10-29 15:43:06 · 1329 阅读 · 0 评论 -
thinkphp5.1--钩子和行为
行为ThinkPHP中的行为是一个比较抽象的概念,可以把行为想象成在应用执行过程中的一个动作。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应用,...转载 2019-10-17 16:03:32 · 397 阅读 · 0 评论 -
thinkphp5.1--推送、发消息、聊天室功能
workerman参考文档:http://doc2.workerman.net/转载 2019-06-04 14:36:09 · 2287 阅读 · 0 评论 -
thinkphp5.1--模块
新建MODEL文件夹(application\index\model)新建model类文件(application\index\model\User.php表名为文件名,首字母大写)namespace app\index\controller;use think\model;class Demo extends Model{}namespace app\index\...转载 2019-05-28 11:44:05 · 264 阅读 · 0 评论 -
thinkphp5.1--模板继承
新建公用模板目录(application\index\view\common)分离头部的尾部(header.html、footer.html)公共模板文件(父模板文件中只能用include和block标签){include file="common/header" /}{block name="body"}主体{/block}{block name="nav"}导航{...转载 2019-05-30 11:01:50 · 496 阅读 · 0 评论 -
thinkphp5.1--Request请求对象
namespace app\index\controller;//use think\facade\Request;use think\Request;use \think\Controllerclass Demo extends Controller{ public function test() { //$request = new Request() ...转载 2019-05-27 16:54:23 · 1203 阅读 · 0 评论 -
thinkphp5.1--模板布局
模板全局配置配置文件template.php添加//开启全局模板布局'layout_on' => true,//全局模板布局文件名'layout_name' => 'layout'模板布局控制器中新建模板文件(application\index\controller\Demo\---test方法)新建视图文件(application\index\demo\t...转载 2019-05-30 10:14:31 · 816 阅读 · 0 评论 -
thinkphp5.1--Facade静态代理
静态代理(facade绑定的类\thinkphp\library\think\facade\)创建一个类实现静态代理(app\facade\Test 代理了 app\common\Test)namespace app\common;class Test{ public function hello($name) { return 'Hello ' ....转载 2019-05-27 12:13:35 · 531 阅读 · 0 评论 -
thinkphp5.1--容器与依赖注入
容器----/thinkphp/library/think/Container.php依赖注入:将对象类型的数据,以参数的方式传到方法中(解决向类中的方法传对象的问题)绑定一个类到容器:public function bindClass() { //把一个类放到容器中:相当于注册到容器中 \think\Container::set('tmp(别名)','\app\...转载 2019-05-27 11:17:32 · 835 阅读 · 0 评论 -
thinkphp5.1--模板赋值与变量输出
Demo.phpnamespace app\index\controller;use think\Controller;use think\facade\View;class Demo extends Controller{ public function test1() { //直接将内容输出到页面,不通过模板 $con = '&...转载 2019-05-28 15:52:20 · 2953 阅读 · 0 评论 -
thinkphp5.1--循环判断与分页输出
循环标签(volist)//获取分页要调用 查询类中的paginate(num)方法//每页显示5条$data = \app\model\表名::paginate(5);$this->view->assign('data',$data);return $this->view->fetch();分页:在html文件中加 {$data|raw}...转载 2019-05-28 16:25:13 · 453 阅读 · 0 评论 -
thinkphp5.1--快速生成网站首页
打开网站首页,右键选择另存为把另存的网站首页拖放到phpstorm,复制代码,用JS/HTML格式化工具转换代码格式将格式化后的网站首页做为项目首页app\index\controller\Index.phpnamespace app\index\controller;use think\Controller;class Index extends Controll...转载 2019-05-28 17:05:59 · 1541 阅读 · 0 评论 -
thinkphp5.1--数据表count操作
代码优化:$list = Db::name('..')->field('..')->where(...);$count = $list->count('id');//获取列表总数量$list = $list->page(0,10)->select();//获取列表$list = Db::query($list);//如果第一行有group()操作,则这一...原创 2019-06-04 18:38:28 · 5823 阅读 · 0 评论 -
tp5.1--like操作
模糊查询:$res = 'you';$user = Db::name('users')->field('phone')->where(['name','LIKE',"%". $res ."%"])->find();Db::table('think_user')->where([ ['name', 'like', $name . '%'], [...原创 2019-06-26 10:51:08 · 2350 阅读 · 0 评论 -
thinkphp5.1---聚合函数使用
方法 说明MYSQL---SUMsum 获取总分,参数是要统计的字段名(必须)Db::table(‘think_user’)->sum(‘score’);//查询score的总和MYSQL---COUNTcount 统计数量,参数是要统计的字段名(可选)Db::table(‘think_user’)->count(‘id’);//查询总数量MYSQL-...原创 2019-07-02 11:47:46 · 1824 阅读 · 0 评论 -
thinkphp5.1--导入excel文件
public function importExcel() { try { //获取表格的大小,限制上传表格的大小 if ($_FILES['file']['size'] > 10 * 1024 * 1024) { //文件过大 log_debug($log_title . 'END =...原创 2019-08-05 12:28:08 · 533 阅读 · 0 评论 -
thinkphp5.1--导出为excel
namespase app\test;use PhpOffice\PhpSpreadsheet\IOFactory;use PhpOffice\PhpSpreadsheet\Spreadsheet;use PhpOffice\PhpSpreadsheet\Writer\Xlsx;class test { public function carNumsExport() ...原创 2019-08-12 14:04:28 · 224 阅读 · 0 评论 -
thinkphp5.1--connect()操作代码自动补全设置
Db.php添加 use think\db\Query;connect()方法,将返回值类型修改为Query原创 2019-09-19 10:51:58 · 777 阅读 · 0 评论 -
thinkphp5.1 --- 数据库操作
获取值:value('字段');//获取单个值column('字段');//获取一列值【数组】column('name','id');//获取以id为索引,name为值的集【数组】锁机制:lock(true)->find();联表:leftjoin('表名 别名','join条件');//与数据库配置表前缀相同 leftjoin(['表名' => '别...原创 2019-09-27 10:09:52 · 348 阅读 · 0 评论 -
tp5.1--lock
Lock方法是用于数据库的锁机制,如果在查询或者执行操作的时候使用:Db::name('user')->where('id',1)->lock(true)->find();复制就会自动在生成的SQL语句最后加上 FOR UPDATE或者FOR UPDATE NOWAIT(Oracle数据库)。lock方法支持传入字符串用于一些特殊的锁定要求,例如:Db:...转载 2019-04-25 16:16:22 · 2520 阅读 · 0 评论 -
tp5.1--distinct
DISTINCT 方法用于返回唯一不同的值 。例如数据库表中有以下数据以下代码会返回user_login字段不同的数据Db::table('think_user')->distinct(true)->field('user_login')->select();生成的SQL语句是: SELECT DISTINCT user_login FROM think_...转载 2019-04-25 16:15:16 · 2034 阅读 · 0 评论 -
tp5.1--union
UNION操作用于合并两个或多个 SELECT 语句的结果集。使用示例:Db::field('name') ->table('think_user_0') ->union('SELECT name FROM think_user_1') ->union('SELECT name FROM think_user_2') ->selec...转载 2019-04-25 16:14:14 · 1403 阅读 · 0 评论 -
tp5.1--数据库高级查询
快捷查询快捷查询方式是一种多字段相同查询条件的简化写法,可以进一步简化查询条件的写法,在多个字段之间用|分割表示OR查询,用&分割表示AND查询,可以实现下面的查询,例如:Db::table('think_user') ->where('name|title','like','thinkphp%') ->where('create_time&u...转载 2019-03-20 17:40:48 · 2688 阅读 · 0 评论 -
tp5.1--查询表达式
查询表达式查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:where('字段名','表达式','查询条件');whereOr('字段名','表达式','查询条件');5.1还支持新的查询方法whereField('表达式','查询条件');whereOrField('表达式','查询条件');Field使用字段的驼峰...转载 2019-03-20 16:44:42 · 1861 阅读 · 0 评论 -
tp5.1--数据库删除操作
删除数据// 根据主键删除Db::table('think_user')->delete(1);Db::table('think_user')->delete([1,2,3]);// 条件删除 Db::table('think_user')->where('id',1)->delete();Db::table('think_user')->wh...转载 2019-03-20 16:28:25 · 4401 阅读 · 0 评论 -
tp5.1--数据库更新操作
更新数据Db::name('user') ->where('id', 1) ->update(['name' => 'thinkphp']);实际生成的SQL语句可能是:UPDATE `think_user` SET `name`='thinkphp' WHERE `id` = 1复制update 方法返回影响数据的条数,没修改...转载 2019-03-20 16:26:20 · 6481 阅读 · 0 评论 -
tp5.1--数据库添加操作
使用 Db 类的 insert 方法向数据库提交数据$data = ['foo' => 'bar', 'bar' => 'foo'];Db::name('user')->insert($data);insert 方法添加数据成功返回添加成功的条数,通常情况返回 1或者使用data方法配合insert使用。$data = ['foo' => 'b...转载 2019-03-20 16:20:07 · 3953 阅读 · 0 评论 -
tp5.1--数据库查询操作
selectOrFail();//在没有查找到数据后抛出异常Db::table('think_user')->where('status',1)->selectOrFail();findOrFail();//在没有查找到数据后抛出异常Db::table('think_user')->where('id',1)->findOrFail();findOrEm...转载 2019-03-20 16:15:00 · 2540 阅读 · 0 评论 -
tp5.1--数据表前缀
Db::table(table_name);//表名须带前缀Db::name(table_name);//表名不需要带前缀【前提是已配置】db(table_name);//表名不需要带前缀【前提是已配置】原创 2019-03-20 12:53:03 · 3672 阅读 · 1 评论 -
tp5.1 --php5.6 --Apache报错No input file specified解决方法
将public->.htaccess文件中<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f Rewrit...原创 2019-03-20 11:54:35 · 613 阅读 · 0 评论 -
tp5.1--JSON字段
JSON字段从V5.1.4+版本开始,强化了JSON字段的操作支持。如果你的user表有一个info字段是JSON类型的(或者说你存储的是JSON格式,但并非是要JSON字段类型),你可以使用下面的方式操作数据。JSON数据写入$user['name'] = 'thinkphp';$user['info'] = [ 'email' => 'thinkphp@qq....转载 2019-03-20 18:16:20 · 2701 阅读 · 1 评论 -
tp5.1--数据库子查询
首先构造子查询SQL,可以使用下面三种的方式来构建子查询。使用fetchSql方法fetchSql方法表示不进行查询而只是返回构建的SQL语句,并且不仅仅支持select,而是支持所有的CURD查询。$subQuery = Db::table('think_user') ->field('id,name') ->where('id', '>', 10...转载 2019-03-20 18:22:24 · 1979 阅读 · 0 评论 -
tp5.1--join用法
JOIN方法用于根据两个或多个表中的列之间的关系,从这些表中查询数据。join通常有下面几种类型,不同类型的join操作会影响返回的数据结果。INNER JOIN: 等同于 JOIN(默认的JOIN类型),如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行 RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行 FULL JOIN:...转载 2019-04-25 16:12:34 · 4066 阅读 · 0 评论 -
tp5.1--配置
配置定义可以直接在相应的应用或模块配置文件中修改或者增加配置参数,如果你要增加额外的配置文件,直接放入应用或模块配置目录即可(文件名小写)。除了一级配置外,配置参数名严格区分大小写,建议是使用小写定义配置参数的规范。另外涉及到配置参数的定义有效性问题,下列配置参数在模块配置中定义(包括动态配置)无效,而必须在应用配置中设置:配置参数 描述 app_debug 应...转载 2019-03-27 12:27:37 · 1866 阅读 · 0 评论 -
tp5.1--路由-URL生成
ThinkPHP支持路由URL地址的统一生成,并且支持所有的路由方式,以及完美解决了路由地址的反转解析,无需再为路由定义和变化而改变URL生成。如果你开启了路由延迟解析,需要生成路由映射缓存才能支持全部的路由地址的反转解析。URL生成使用 \think\facade\Url::build() 方法或者使用系统提供的助手函数url(),参数一致:Url::build('地址表达式'...转载 2019-03-21 11:20:25 · 3645 阅读 · 0 评论 -
tp5.1--数据库-数据集
数据库的查询结果也就是数据集,默认的配置下,数据集的类型是一个二维数组,我们可以配置成数据集类,就可以支持对数据集更多的对象化操作,需要使用数据集类功能,可以配置数据库的resultset_type参数如下:return [ // 数据库类型 'type' => 'mysql', // 数据库连接DSN配置 'dsn' =&...转载 2019-03-21 11:22:06 · 613 阅读 · 1 评论 -
tp5.1--数据库监听SQL
如果开启数据库的调试模式的话,你可以对数据库执行的任何SQL操作进行监听,使用如下方法:Db::listen(function ($sql, $time, $explain) { // 记录SQL echo $sql . ' [' . $time . 's]'; // 查看性能分析结果 dump($explain);});默认如果没有注册任何监听操作...转载 2019-03-21 11:22:19 · 1286 阅读 · 0 评论 -
tp5.1--数据库事务操作
使用事务处理的话,需要数据库引擎支持事务处理。比如 MySQL 的 MyISAM 不支持事务处理,需要使用 InnoDB 引擎。最简单的方式是使用 transaction 方法操作数据库事务,当闭包中的代码发生异常会自动回滚,例如:Db::transaction(function () { Db::table('think_user')->find(1); Db...转载 2019-03-21 11:22:38 · 2853 阅读 · 0 评论 -
tp5.1--数据库获取器
获取器(V5.1.20+)Db类也可以支持获取器定义,例如:Db::name('user')->withAttr('name', function($value, $data) { return strtolower($value);})->select();上面的代码,查询的数据集数据中的name字段的值会统一进行小写转换。withAttr方法可以多次调用,...转载 2019-03-21 11:22:47 · 1283 阅读 · 1 评论