tp6
appleคิดถึง
在学习,在分享,在路上
展开
-
tp6 多关联withJoin查询
记录:一个模型关联多个模型,进行查询代码示例: protected $relationSearch = false; /** * @NodeAnotation(title="列表") */ public function index() { if ($this->request->isAjax()) { if (input('selectFields')) {原创 2022-03-11 10:57:11 · 7595 阅读 · 5 评论 -
TP6中 解决save操作在foreach中只保存最后一条数据
正常情况下,tp6保存数据到数据库,示例:$user = new User;$user->name = 'thinkphp';$user->email = 'thinkphp@qq.com';$user->save();// 获取自增IDecho $user->user_id;foreach循环中,保存数据到数据库,应为:$user = User::create([ 'name' => 'thinkphp',原创 2021-09-24 08:46:32 · 1087 阅读 · 0 评论 -
TP6 验证器验证唯一性时排除软删除数据
记录:TP6 验证器验证唯一性时排除软删除数据,排除本身。控制器controller /** * @NodeAnotation(title="添加") */ public function add($id = null) { if ($this->request->isAjax()) { $post = $this->request->post(); $this->va原创 2021-04-26 14:33:30 · 918 阅读 · 0 评论 -
TP6 批量导入
php代码: //获取上传文件信息 $files = request()->file(); if(!$files){ $this->error('请上传excel文件'); } if(!isset($files['addexcel'])){ $this->error('请上传excel文件');原创 2021-02-19 18:20:52 · 634 阅读 · 0 评论 -
TP6 取消了 vendor函数
记录:从tp 5.1.x后vendor的使用方法发生变化,文档又没有详细说明。tp5.1.x取消了Loader::import方法以及import和vendor助手函数,推荐全面采用命名空间方式的类以及自动加载机制,如果必须使用请直接改为php内置的include或者require语法.例如:tp5.0使用方法:vendor("PHPExcel.PHPExcel.IOFactory");tp6.0使用方法:require_once(root_path() . '/vendor/PHPExcel原创 2021-02-19 17:17:10 · 594 阅读 · 0 评论 -
环境变量中php版本过低导致TP6下载失败
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2020-12-14 15:10:04 · 586 阅读 · 0 评论 -
文件重命名
记录:tp6框架的.example.env文件改为.env文件时,提示文件名不能为空,即不能手动复制修改,这种情况,两种解决方式。方式一:创建php修改文件名的方法1,复制一份.example.env文件,并命名为aa.env文件2,创建rename方法 public function _rename() { $file = root_path() . 'aa.env'; if(file_exists($file) !== false){原创 2020-12-04 16:24:52 · 434 阅读 · 1 评论 -
tp6静态.htaccess
记录:composer下载的TP6项目中.htaccess文件是空的,应将以下规则加入<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]</I原创 2020-12-04 11:29:37 · 519 阅读 · 0 评论 -
tp6 实现汉字转拼音
记录:tp6项目中实现汉字转拼音功能。一,下载拓展文件,放在extend目录下链接: https://pan.baidu.com/s/1DHItlnQkCIfs0NgFBKXYEg提取码: jw4b示例:二,控制器中使用:引入拓展文件:use topinyin\ChinesePinyin; public function indexOp() { $Pinyin = new ChinesePinyin(); //带声调的汉语拼音 e原创 2020-10-21 13:35:03 · 770 阅读 · 0 评论 -
TP6 非debug模式下,记录网站错误日志
记录:TP6 非debug模式下,若有程序发生错误,并将其记录在错误日志里面,管理后台可及时发现并对其程序进行补救。1,熟悉tp6官方文档,了解异常处理机制2,修改app\ExceptionHandle.php应用异常处理类引入模型文件,use app\common\model\ErrorLog;修改记录异常信息report方法,追加以下代码:/************增加错误日志记录开始*****************/ //在debug关闭的情况下,记录错误信息原创 2020-10-13 14:28:27 · 1339 阅读 · 0 评论 -
TP6 自定义404,错误提示页面
记录:自定义TP6404及错误提示页面。1,配置config下的app.php配置文件'exception_tmpl' => app()->isDebug()==true ? app()->getThinkPath() . 'tpl/think_exception.tpl':base_path().'sorry.html','http_exception_template'=> [404 =>base_path().'404.html'],2,在app目录下添加原创 2020-10-13 14:07:29 · 2290 阅读 · 2 评论 -
tp6 解决变量赋值html不解析
记录:tp6 解决变量赋值html不解析问题html代码:<div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">分组</label> <div class="layui-input-inline"> <select name="departmentid" lay-filter="aihao">原创 2020-10-11 16:37:42 · 855 阅读 · 0 评论 -
tp6取消了模型的自动完成,可使用模型事件代替
记录:tp6模型的自动完成功能已经取消,请使用模型事件代替。tp5版本时可使用框架的自动完成功能,示例:模型文件:model/User.php //数据自动完成指在不需要手动赋值的情况下对字段的值进行处理后写入数据库。 protected $insert = ['postdate']; //数据自动完成,对于表单中没有的字段 protected function setPostdateAttr() { return time(); }tp6版本模型的自动完成功能已经取消,请使用模型事原创 2020-09-23 16:08:20 · 994 阅读 · 1 评论 -
tp6 中的save()使用说明
记录:tp6 中的save()的使用方法新增数据:1,tp6.0 中的save()方法自动过滤掉非数据表所需字段,示例1: $ruler = new RulerModel(); $result = $ruler->save($_POST); if(false === $result) { return callbackfun('error',$ruler->getError()); } else { //新增主键,此处必须是id,不是数据表的主原创 2020-09-23 14:43:16 · 3904 阅读 · 1 评论 -
TP6 重定向redirec使用场景
记录:重定向redirect使用场景TP6源码中封装的助手函数( helper.php)中有redirect方法,示:if (!function_exists('redirect')) { /** * 获取\think\response\Redirect对象实例 * @param string $url 重定向地址 * @param int $code 状态码 * @return \think\response\Redirect */原创 2020-09-21 11:51:22 · 1187 阅读 · 0 评论 -
TP6.0 设置session,获取不到session
记录:TP6.0 设置session,获取不到session原因:tp6官方文档有提到:所以,在中间件 middleware.php 中开启 Session 初始化即可原创 2020-09-16 17:54:52 · 2067 阅读 · 0 评论 -
TP6.0记录文档
请求变量 use think\facade\Request; Request::param('name'); Request::param();全部请求变量 返回数组 Request::param(['name', 'email']); 多个变量 Request::param('a','1') $a不存在使用默认值1 Request::param('username','','strip_tags'); 参数过滤 去掉html标签 htmlspecialchars转换成实体入库 strtolow转载 2020-09-15 15:08:00 · 444 阅读 · 0 评论 -
TP6 事件
记录:事件官方定义要点:事件本身可以是一个类,并且可以更好的支持事件订阅者 事件相比较中间件的优势是事件比中间件更加精准定位(或者说粒度更细),并且更适合一些业务场景的扩展,做到不侵入原有代码完成操作扩展,降低系统的耦合性的同时,也降低了BUG的可能性。 事件系统的所有操作都通过think\facade\Event类进行静态调用 事件机制不能关闭1,定义事件php think make:event UserLogin2,事件绑定动态绑定//比如可以在控制器中,动态绑定某事件原创 2020-07-21 16:50:38 · 873 阅读 · 0 评论 -
TP6 服务
记录:官方定义:系统服务的概念是指在执行框架的某些组件或者功能的时候需要依赖的一些基础服务,服务类通常可以继承系统的think\Service类,但并不强制(如果继承think\Service的话可以直接调用this->app获取应用实例)。1,命令行生成一个服务:php think make:service TestService默认生成的服务类会继承系统的think\Service,并且自动生成了系统服务类最常用的两个空方法:register和boot方法。 regist原创 2020-07-20 10:53:42 · 1070 阅读 · 0 评论 -
TP6.0记录
记录:1,多应用模式下,需要安装拓展:composer require topthink/think-multi-app2,原创 2020-07-17 11:18:05 · 533 阅读 · 0 评论 -
TP6.0首次加载模板报错Driver [Think] not supported.
记录:首次加载模板文件时报错:Driver [Think] not supported.原因:缺少模板驱动引擎安装:composer require topthink/think-view原创 2020-07-16 17:47:33 · 544 阅读 · 0 评论 -
TP6.0开启debug
记录:composer安装好tp6.0最新版后:1,将项目根目录下的.example.env文件复制一份,将名称重命名为1.env;2,使用phprename函数将此文件重命名未.env; public function index(){ //文件路径 $old_file = "D:/phpstudy_pro/WWW/tp60/1.env"; //新文件路径 $new_file = "D:/phpstudy_pro/WWW/tp60/.env"; //重命名结果.原创 2020-07-16 17:04:27 · 1336 阅读 · 0 评论