
ThinkPhP6
文章平均质量分 79
ThinkPHP框架的学习记录
杀死一只知更鸟debug
手敲博客 https://www.robindeblog.cn/,域名已过期,换赛道中!
展开
-
基于ThinkPHP8 + Vue3 + element-ui-plus + 微信小程序(原生) + Vant2 的 BBS论坛系统设计【PHP课设】
我做的是一个论坛类的网页项目,每个用户可以登录注册查看并发布文章,以及对文章的点赞和评论,还有文件上传和个人签名发布和基础信息修改,管理员对网站的数据进行统计,对文章和文件的上传以及评论进行审核,以及对普通的用户的权限提升账号封停等等,以及对应的crud。然后做的是三端(PC端,小程序端)并且采用前后端分离以及JWT技术和RestFull风格API,后端使用ThinkPHP8,PC端使用vue3+element-ui-plus,Axios异步通信以及诸多扩展,微信小程序端使用原生的微信小程序技术+van原创 2023-11-24 10:43:19 · 9259 阅读 · 0 评论 -
ThinkPHP 配置跨域请求,使用TP的内置跨域类配置,小程序和web网页跨域请求的区别及格式说明
TP 框架提供的内置类: \think\middleware\AllowCrossDomain::class开启跨域。在微信小程序中,可以使用小程序提供的JS-SDK中的wx.request方法发起CORS请求,header: { 'Content-Type': 'application/json', // 设置请求头信息 'Access-Control-Allow-Origin': '*' // 设置允许跨域的源地址 },;在Web网页中,需要与服务端协商设置允许跨域的响应原创 2023-09-30 17:16:05 · 3998 阅读 · 0 评论 -
微信小程序给 thinkphp后端发送请求出现错误 Wrong number of segments 问题的解决 【踩坑记录】
微信小程序向后端发送请求时出现"Wrong number of segments"错误,通常是由于请求的URL路径不正确或请求参数不符合规范所导致的。检查请求的URL路径是否正确。确保你在微信小程序中发送请求时,URL路径是正确的。例如,如果你在ThinkPHP中定义了一个控制器名为"Index",并且该控制器有一个名为"test"的方法,那么正确的URL路径应该是类似于"http://example.com/index/test"的形式。检查请求的参数是否符合规范。如果你的控制器方法需要接收参数,确保你原创 2023-09-06 20:50:57 · 2109 阅读 · 0 评论 -
ThinkPHP 集成 jwt 技术 token 验证
在app/api/route/route.php路由文件中进行使用,进行使用中间件校验token。因为我这个是多应用,然后我就只在index应用(只提供api接口)下设置了token类。在config/middleware.php中注册中间件。原创 2023-08-30 09:33:40 · 4325 阅读 · 3 评论 -
ThinkPHP 文件上传 fileSystem 扩展的使用
ThinkPHP 为我们 提供了 filesystem扩展用于上传文件,要使用 filesystem 扩展首先要使用composer进行安装,然后安装完毕后,配置相应的上传规则即可。文件上传的相关配置在应用的config目录下的filesystem.php中进行配置,下面是默认的配置文件。(其实就是多加了一层应用名称以示区分)。默认的文件上传存储到本地的话,其中的配置规则也可以自行扩充。的话,那么存放的位置就是。原创 2023-08-29 20:01:23 · 3463 阅读 · 0 评论 -
多应用模式下,忽略项目的入口文件,重写Apache规则
首先,我的项目是具有两个应用,admin和index,同时给它们绑定了域名,但是每次访问时都需要加入项目的入口文件地址 index.php ,为了忽略这个入口文件,只能通过重写Apache的规则。测试访问,此时访问控制器下的对应方法已经不再需要index.php入口文件了。找到项目根目录下的 Public.htaccess ,对其进行编辑即可。原创 2023-08-28 18:58:16 · 754 阅读 · 0 评论 -
ThinkPHP 通用的API格式封装
在控制器下面新建Error控制器,然后添加__call方法,这样就会调用不存在的控制器的时候会调用__call方法,会传入请求的控制器名称和参数。在BaseController中重写__call方法,当调用不存在的方法时,就会调用__call方法,会传入请求方法和参数。假定一个成功的请求,测试一下。原创 2023-08-28 18:39:25 · 1099 阅读 · 0 评论 -
ThinkPHP 资源路由的简单使用,restfull风格API
测试 资源路由的 index 方法,其访问路径为 域名/index.php/路由,因为这里我还没有重写Apache的重写规则,所以index.php入口还是得敲到地址栏中。将资源控制器中的方法写一些输出,用于测试一下restfull风格的资源控制器,这里我只给index和read方法写了方法体,简单测试一下。测试 资源路由的 read 方法,此时已经能体现出restful路由的好处了,请求url变得更为简洁和安全。设置后会自动注册7个路由规则,对应资源控制器的7个方法。如果只是用于接口开发,可以使用。原创 2023-08-28 08:44:32 · 1019 阅读 · 1 评论 -
ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则
安装验证码扩展后,在当前项目中的全局配置文件config目录中,会多出一项captcha.php用于配置验证码的相关配置。在单应用模式下,我们可以直接通过config/captcha.php 来配置项目中的验证码相关配置。多应用模式下的话,将config/captcha.php 拷贝一份到每个应用中的config目录中,然后在根据不同的应用去修改相应的验证码配置。php// | Captcha配置文件return [//验证码位数// 验证码字符集合// 验证码过期时间。原创 2023-08-27 19:47:34 · 1758 阅读 · 1 评论 -
ThinkPHP 多应用配置,及不同域名访问不同应用的配置【详解】
在config\app.php中进行配置域名绑定。这里需要注意的是,不要出现含有大写文字的域名,有可能会导致访问不到。使用命令来快速床架多应用(在命令终端中输入下面的命令),这里我创建了两个应用,index和admin。如果没有 auto_multi_app 这个配置项,则手动加入进去,并将其值设置为true.通过域名来访问页面,默认域名直接匹配的就是index控制器的index方法。安装完成后,删除项目的中默认的controller文件夹。原创 2023-08-27 09:16:11 · 2371 阅读 · 1 评论 -
ThinkPHP6模型中的获取器,修改器及搜索器的简单使用
最常用的就是你的数据库中比如存放了某种状态信息,对应-1,1,2,实际的意思可能为不同的状态,删除,禁用,正常,待审核…搜索器的作用是用于封装字段(或者搜索标识)的查询条件表达式,一个搜索器对应一个特殊的方法(该方法必须是。获取器的作用是对模型实例的(原始)数据做出自动处理。最常见的就是往数据库插入数据时,比如说一些涉及金额的字段值,将你传入的值转换为浮点型…和获取器相反,修改器的主要作用是对模型设置的数据对象值进行处理。tips:当你定义获取器后,你想得到原始的数据信息,可以通过。方法来获取原始的数据。原创 2023-05-21 17:24:39 · 3120 阅读 · 1 评论 -
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD
ThinkPHP6 模型层的模型属性,表映射关系,以及如何在控制层中使用模型层和模型层中的简单CRUD。在tp6中,模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写的方式。(和控制层,视图层一样,也需要导入相应的类库`think\Model`,还可以自定义的方式mo通过属性`protected $table = "xxx"`来设定。模型设置属性是为了更灵活的去使用数据表。在控制器中使用模型层,只需要将`think\model`引入,然后在控制器的方法中实例化模型原创 2023-05-21 14:15:21 · 2554 阅读 · 1 评论 -
thinkPhP6.0安装教程图解--PHP框架安装
首先,thinkphp6.0,要求php的环境是7.2.5及以上的,所以先检查自己的php环境是否符合要求。在cmd命令窗口中输入php -v或者没有配置环境变量的话,可以在php编辑器中输出php_info()或则来查看对应的版本号。原创 2023-05-13 11:35:37 · 5092 阅读 · 0 评论 -
ThinkPHP6表单上传的数据获取的四种方式【请求对象调用,静态调用,助手函数调用,原生的get|post】
首先一个form表单中的Input控件需要存在对应的name值,然后method为post|get,action为要提交到的控制器的哪个方法例如(本文的前端视图代码均为下面的html):原创 2023-05-16 21:48:43 · 3406 阅读 · 2 评论 -
ThinkPHP6布局的方式之模板布局,全局配置方式,模板标签方式,动态方法布局
以前面的输出模板为例,这种方式的入口还是在index/index.html 模板,但是我们可以修改下index模板文件的内容,在头部增加下面的布局标签(记得首先关闭前面的。使用内置的layout方法可以更灵活的在程序中控制模板输出的布局功能,尤其适用于局部需要布局或者关闭布局的情况,这种方式也不需要在配置文件中开启。模板,布局模板的写法和其他模板的写法类似,本身也可以支持所有的模板标签以及包含文件,区别在于有一个特定的输出替换变量。,直接在模板文件中指定布局模板即可,相关的布局模板调整也在模板中进行。原创 2023-05-16 13:10:34 · 2159 阅读 · 0 评论 -
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
使用tp6框架操纵数据库,首先要修改数据库配置文件(`config/database.php`),配置完毕后,便可以操作数据库了。然后记得使用时,将模块引入 `use think\facade\Db; `,接着便可以使用tp6数据构造器中的方法了。查询单个数据可以使用`find `或者 `select`,但是查询多条只能使用`select `方法。添加单个数据使用`save`,添加多条数据可以使用`insertAll `,可以通过用`insertGetId`方新增数据并返回主键值.删除数据可以使用`dele原创 2023-05-14 15:46:23 · 3698 阅读 · 0 评论 -
ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签
模板引擎提供了运算符,函数,可以在前端更灵活的去编写不同的代码。函数的使用规则模板引擎函数使用其实就是 {data|过滤规则(函数名)}。模板引擎注释,单行注释和多行注释与php一致,只是在{} 大括号中间,且并不会被前端代码解析。模板引擎循环标签,提供了三种方式,foreach,volist,for,其中volist最为灵活。模板引擎判断标签,只能说应有尽有,{if}{elseif}{else/}{/if},{switch}{case}{/case}{/switch}...一些特殊标记,literal原创 2023-05-14 09:58:29 · 3651 阅读 · 0 评论 -
ThinkPHP6,视图的安装及模板渲染和变量赋值 view::fetch() ,view::assgin() ,助手函数
tp6视图功能由类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。使用模板引擎,只需要安装think-view模板引擎驱动。视图相关的配置在配置目录的view.php配置文件中进行定义。通常可以直接使用来操作视图。原创 2023-05-13 22:54:09 · 5971 阅读 · 0 评论 -
ThinkPHP6的控制器定义及控制器初使用
tp6控制器文件通常放在controller下面,类名和文件名保持大小写一致,并采用驼峰命名(首字母大写),可以在`config/route.php`中配置默认的目录名,在单应用模式下,项目访问路径为“虚拟域名/入口文件/控制器/方法”,然后入口文件可以忽略不写,从控制器开始写,控制器名不区分大小写,且有驼峰转下划线的方式( HelloWorld 等同于 helloworld 等同于 hello_world*。原创 2023-05-13 21:22:32 · 1879 阅读 · 0 评论