首页
关于
Search
1
跨域设置-开发过程中直接服务器开发
21 阅读
2
小程序反编译
17 阅读
3
笔记
11 阅读
4
微信支付设置
11 阅读
5
小程序开发从0到上线,10个步骤!!
10 阅读
微信生态
云开发
服务器开发
微信支付
服务器
部署文档
默认分类
登录
Search
标签搜索
thinkphp
小程序前端
php
皮卡云
累计撰写
14
篇文章
累计收到
0
条评论
首页
栏目
微信生态
云开发
服务器开发
微信支付
服务器
部署文档
默认分类
页面
关于
搜索到
14
篇与
的结果
2025-06-21
ThinkPHP 8 中间件详解
ThinkPHP 8 的中间件机制提供了一种强大的方式来过滤进入应用的 HTTP 请求,允许你在请求到达控制器之前或响应发送到客户端之后执行特定的逻辑。中间件基本概念中间件是一种在请求处理管道中执行的机制,可以:在请求到达控制器前进行预处理在响应发送到客户端前进行后处理终止请求并直接返回响应创建中间件可以通过命令行生成中间件:php think make:middleware CheckAuth这会生成 app/middleware/CheckAuth.php 文件:<?php declare (strict_types = 1); namespace app\middleware; class CheckAuth { public function handle($request, \Closure $next) { // 前置中间件逻辑 $response = $next($request); // 调用下一个中间件/控制器 // 后置中间件逻辑 return $response; } }中间件注册全局中间件在 app/middleware.php 文件中注册:return [ \app\middleware\CheckAuth::class, // 其他全局中间件... ];路由中间件在路由定义中使用:Route::rule('user/profile', 'user/profile') ->middleware(\app\middleware\AuthCheck::class);控制器中间件在控制器中定义:protected $middleware = [ \app\middleware\AuthCheck::class => ['except' => ['login']], \app\middleware\LogOperation::class => ['only' => ['update', 'delete']], ];中间件<?php declare( strict_types = 1 ); namespace app\middleware; use think\facade\Db; use think\Response; use think\facade\Request; class CheckAuth { /** * 处理请求 * * @param \think\Request $request * @param \Closure $next * @return Response */ public function handle( $request, \Closure $next ): Response { // 获取所有输入数据 $UID = $request->param( 'UID' ); if ( !$UID ) { return Response::create( [ 'code' => 500, 'msg' => '请传入用户ID!' ], 'json' ); } $user = Db::table( 'user' )->where( 'id', $UID )->findOrEmpty(); if ( empty( $user ) ) { return Response::create( [ 'code' => 101, 'msg' => '用户不存在' ], 'json' ); } // 将用户数据附加到请求对象中,供后续控制器使用 $request->user = $user; // 继续处理请求 return $next( $request ); } }使用控制器<?php //APP 调用接口 namespace app\controller; use think\facade\Db; use app\BaseController; use app\middleware\CheckAuth; class App extends BaseController { //控制器引用 不验证登录模块 Login protected $middleware = [ CheckAuth::class => [ 'except' => [ 'Login' ] ] ]; //获取控制器的用户信息 //$user = request()->user; public function Login() { $result = [ 'id'=>1 ]; return json( [ 'code' => !empty( $result ) ? 0 : 1, 'msg' => !empty( $result ) ? '登录成功' : '登录失败', 'data'=>$result ] ); } }
2025年06月21日
1 阅读
0 评论
0 点赞
2025-05-25
thinkphp 部署指南
thinkphp
2025年05月25日
2 阅读
0 评论
0 点赞
2025-05-18
小程序分页加载实现指南
什么是分页加载分页加载是一种常见的数据加载策略,特别适用于移动端应用和小程序。它将大量数据分割成多个"页",用户滚动到页面底部时自动加载下一页数据,而不是一次性加载所有内容。小程序分页加载的优势提升性能:减少首次加载数据量,加快页面渲染速度节省流量:只加载用户实际浏览的内容优化体验:避免长时间等待所有数据加载完成index.jsPage({ /** * 页面的初始数据 */ data: { list: [], page: 1, limit: 20, total: 0, }, onShow() { this.setData({ list: [], page: 1, limit: 20, }) this.get() }, get() { let that = this getApp().r('get', { page: that.data.page, t:'document_list' }, function (res) { if (res.code == 0) { that.setData({ list: that.data.list.concat(res.data.data), total: res.data.total }) } }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { console.log('页面相关事件处理函数--监听用户下拉动作') this.onShow() }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { console.log('页面上拉触底事件的处理函数') if (this.data.list.length == this.data.total) { console.log('全部在这了') // wx.showToast({ // title: '全部在这了!', // icon: 'none', // duration: 2000 // }) return } this.setData({ page: this.data.page + 1 }) this.get() }, })index.json{ "enablePullDownRefresh": true, "onReachBottomDistance": 50 }
2025年05月18日
4 阅读
0 评论
0 点赞
2025-04-24
关于小程序 更新 查看最新内容方法
小程序
2025年04月24日
5 阅读
0 评论
0 点赞
2025-04-24
音乐推小程序
音乐推小程序,微信,抖音,快手
2025年04月24日
5 阅读
0 评论
0 点赞
1
2
3