![](https://img-blog.csdnimg.cn/f6e2abf70af843488a121dde47e887e0.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ThinkPHP
ThinkPHP框架相关
扫地鼠Gordon
幽己一默胜笑人三声
展开
-
ThinkPhp5.1快速创建模块
快速生成模块生成一个test模块的指令如下:>php think build --module test表示自动生成test模块,自动生成的模块目录包含了config、controller、model和view目录以及common.php公共文件。批量生成模块如果需要批量生成多个模块的目录和文件,需要定义规则文件build.php并放入应用目录(applicat...原创 2019-01-15 13:49:58 · 5524 阅读 · 1 评论 -
ThinkPHP关于数组(或对象)从视图assign赋值到前端js
直接上代码:后端$aa = [ 'a'=>'1111', 'b'=>'2222', 'c'=>'3333'.PHP_EOL.'4444'];$this->assign('aa', $aa);前端接收var aa = {:json_encode($aa)};console.log(aa);控制台打印{a: "1111", b: "2222", c: "3333↵4444"}也可以在后端用json_encode($aa)处理原创 2020-08-21 17:13:20 · 1886 阅读 · 0 评论 -
tp6获取不到请求头的Authorization, 解决方法
在.htaccess里面加多一项<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^...原创 2019-12-06 11:23:23 · 3803 阅读 · 1 评论 -
tp6跨应用(多应用)重定向+初始化重定向
在多应用模式下,需先安装多应用插件,如果配置有路由,请删除根目录下的route目录及文件,并在各自应用下新建route目录及相关文件安装多应用插件:composer require topthink/think-multi-app生成index应用和demo应用:php think build indexphp think build demoindex/应用下contr...原创 2019-12-27 17:18:12 · 2794 阅读 · 0 评论 -
ThinkPHP5.1 隐藏 Index.php 的一些设置
正常访问:http://serverName/index.php/module/controller/action/param/value/...隐藏Index.php文件,只需修改.htaccess文件<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On ...原创 2019-01-07 17:36:59 · 1302 阅读 · 0 评论 -
ThinkPhp5.1笔记试图输出字符串内容替换
从Tp5.0过来的phper:// 视图输出字符串内容替换view_replace_str配置参数改成template配置文件的tpl_replace_string配置参数。原创 2019-01-07 17:27:36 · 1711 阅读 · 0 评论 -
TP模板--layui复选框及提交等相关功能
后端使用column方法读取出来,assign到页面 $this->assign('cause_list', $this->model->group('cause')->where('cause<>""')->column(cause'));页面端使用volist遍历出来html部分<div class="layui-form-item"> <div class="layui-inline"> &l原创 2020-11-06 15:54:52 · 373 阅读 · 0 评论 -
使用composer更新Tp5.0框架的版本
比如:更新版本至5.0.24composer require "topthink/framework=5.0.24"原创 2019-01-16 18:39:18 · 2843 阅读 · 1 评论 -
ThinkPHP5架构流程分析(1)
PS:学习笔记先对ThinkPHP5的应用执行流程做一下大致介绍:整个流程大概分为六个部分1.入口文件和引导文件用户发起的请求都会经过应用的入口文件,通常是public/index.php文件,一般入口文件以定义一些常量为主,还包含了引导文件start.php.start.php文件又会首先调用base.php基础引导文件,然后执行应用并且输出...base.php文件主要包含...原创 2019-02-15 20:23:35 · 1094 阅读 · 0 评论 -
ThinkPHP5自定义命令行(服务器计划任务)
创建自定义命令行第一步,配置command.php文件,目录在application/command.php<?phpreturn [ 'app\home\command\Test',];第二步,建立命令类文件,新建application/home/command/Test.php<?phpnamespace app\home\command;us...原创 2019-02-22 18:03:20 · 1732 阅读 · 0 评论 -
ThinkPHP5.0之extend标签模板继承
extend继承当前所在模块的模板{extend name="common/base" /}extend继承非当前所在模块的模板(格式:模块名@view下面的文件夹/模板文件){extend name="common@common/base" /}...原创 2019-03-03 09:56:12 · 3221 阅读 · 0 评论 -
ThinkPHP添加命名空间别名
Loader类中的静态方法addNamespaceAlias添加的位置,建议在base.php文件中载入Loader.php后// 载入Loader类require CORE_PATH . 'Loader.php';\think\Loader::addNamespaceAlias('model', 'app\blog\model');//取别名model再其他文件中写 use m...原创 2019-02-27 11:45:53 · 913 阅读 · 0 评论 -
关于thinkPHP5自定义合并(或拼接)字段的 排序 会报错
查询数据:若需使用聚合函数时,field()里面的字段以数组的形式写入(原因是thinkPHP官方的建议o(* ̄︶ ̄*)o)示例:// 查询数据, “*”在field方法里面要写在前面,不然会报错。原因是与Query.php里面的field()方法里的逻辑判断有关$list = Db::table($table) ->field(['*', 'concat(leng...原创 2019-03-29 11:05:03 · 2323 阅读 · 0 评论 -
单引号、双引号、反单引号(`)一起用
既然可以这样写,偶然发现的(猜测应该是ES6吧)<button class="layui-btn layui-btn-normal" onclick="javascript:window.location.href=`{:url('模块/控制器/方法')}`">跳转</button>...原创 2019-05-08 09:56:47 · 714 阅读 · 0 评论 -
CORS 跨域与 TP5中跨域的解决方案
转CORS 跨域的概念与 TP5 的解决方案1. 什么是 CORSCORS(Cross-Origin Resource Sharing 跨源资源共享),当一个请求 url 的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。2. 跨域点:当浏览器检查到有跨域的问题,会对访问的接口做一个判断,如果是简单的接口,则直接访问,如果是复杂的接口,则需要先发送一个option请求...转载 2019-05-30 10:25:36 · 639 阅读 · 2 评论 -
Thinkphp的数据集返回类型
官方的配置database.php默认的是array// 数据集返回类型'resultset_type' => 'array',建议改为collection// 数据集返回类型'resultset_type' => 'collection',可以使用Collection类包含的方法。链式操作 ...原创 2019-01-21 11:49:12 · 1877 阅读 · 0 评论 -
浅谈PHP中try{}catch{}的使用方法
try { Db::startTrans(); // 获取$amount 条数据 $list = Db::table("tp_address") ->lock(true) ->limit(200) ->column('telephone'); // dump($list);exit; if ...转载 2018-12-06 10:48:11 · 755 阅读 · 0 评论 -
tp5并表查询,巧妙使用filed()方法
实例$article_list = $this->articleModel ->alias('a') ->join('tag t', "a.tag_id = t.id") ->field('a.*,t.name') ->order('create_time desc') ...原创 2018-06-21 21:58:13 · 7461 阅读 · 0 评论 -
tp5的excel导出功能
使用composer安装phpexcel包composer require phpoffice/phpexcel然后在common.php文件写个导出excel的函数/** * excel表格导出 * @param string $fileName 文件名称 * @param array $headArr 表头名称 * @param array $data 要导出的...转载 2018-07-09 21:33:20 · 1901 阅读 · 0 评论 -
TP5一张表中根据某一字段相同值得另一字段的所有值拼接起来,组成一条新的语句
我的用途在foreach里面,主要内容是group_concat $phone_list = Db::name("matchingfriend") ->field("phone_number, group_concat(amount) amount") ->group('phone_number') ...原创 2018-07-23 11:40:01 · 5131 阅读 · 0 评论 -
tp5数据库查询和模型结合使用
基类中的写法 //侧边栏数据 //先得到权限的二维数组,状态开启的 $cate_arr = Db::name("category") ->where(["status"=>1]) ->select(); //dump($cate_arr); //通过模型的方法将...原创 2018-07-06 11:06:09 · 2955 阅读 · 0 评论 -
一张表实现省市区三级联动【3409条数据】
转至:Thinkphp实现省市区三级联动非常感谢博主,略改tp5常用函数。博主的javascript方法很有思路,很高明,学到了1 . [PHP]代码public function index(){ $province = Db::name('tree')->where ( array('pid'=>1) )->select (); $this-&g...转载 2018-07-14 12:00:21 · 6302 阅读 · 2 评论 -
TP5用composer安装扩展类库
1.在tp根目录下面,按住shift键不放,然后点击鼠标右键,选择“在此处打开命令行窗口”。2.输入composer,检查是否安装composer.exe3.使用国内镜像下载,就是为了复制下面一段代码composer config -g repo.packagist composer https://packagist.phpcomposer.com在命令行中输入这段代码(木的是...原创 2018-08-05 20:02:50 · 6980 阅读 · 0 评论 -
TP5+ajax实现点击表格表头切换排序,带分页
php接收页码请求的地址 /** * ajax 无刷新分页 * param $page int 页码数 * param $field string 排序字段 * param $sort asc或desc 排序方式 * @return mixed * @throws \think\exception\DbException ...原创 2018-08-14 16:53:17 · 1212 阅读 · 1 评论 -
TP框架 插入时主键冲突:insert ignore into
需更改框架文件:thinkphp\library\think\db\Query.php添加下面 红色 框内 这条语句// 这里添加$sql = str_replace('INSERT INTO', 'INSERT IGNORE INTO', $sql);原创 2018-09-14 13:03:45 · 3457 阅读 · 3 评论 -
tp5之路由篇
全局MISS路由如果希望在没有匹配到所有的路由规则后执行一条设定的路由,可以使用MISS路由功能,只需要在路由配置文件中定义:'__miss__' => ['index/Index/index', ['method'=> 'get']] ...转载 2018-09-28 14:05:14 · 885 阅读 · 0 评论 -
Permission denied
在使用文件对象的时候没有完全关闭句柄。解决方法只需要在上传逻辑完成之后清空释放一下变量就可以$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads'); if($info){ // 成功上传后 获取上传信息 $path = ROOT_PATH . 'public' . DS . 'uplo...转载 2018-10-17 08:26:12 · 264 阅读 · 0 评论 -
sql 查询结果增加一列,列名固定,值也固定(mysql可行,其他未知)
tp5框架使用field(["值 as 字段"])select id,'7' as 'type',字段1,字段2 from 表名原创 2018-10-17 18:50:29 · 7497 阅读 · 0 评论 -
tp5同一字段的多个模糊条件查询
public function test(){ $map['r_name'] = [['like', '普通%'], ['like', '牛逼%'], ['like', '可爱%'], 'or']; $list = Db::table("tp_role") ->fetchSql(true) ->where($map) ...原创 2018-10-26 16:07:53 · 3715 阅读 · 0 评论 -
tp框架如何锁表,实现不能高并发的下单
转载 2018-12-06 10:41:09 · 4524 阅读 · 0 评论 -
tp5验证码功能
首先使用Composer安装think-captcha扩展包(TP5中一般都自带vendor\topthink\think-captcha):composer require topthink/think-captchaHTML:<input type="text" class="form-control" name="vcode" placeholder="输入验证码" /><...原创 2018-06-20 23:23:41 · 1339 阅读 · 0 评论