博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thinkphp 中间件结合Validate
阅读量:4706 次
发布时间:2019-06-10

本文共 1290 字,大约阅读时间需要 4 分钟。

//生成资源控制器  php think make:controller app\index\controller\User//路由定义Route::resource('user','index/user'); //中间件扩展定义文件 在application\User目录下 新建middleware.php
<?php
// 中间件扩展定义文件
return [
'Check' => app\http\middleware\Check::class
];
 
//生成验证规则 php think make:validate index/User namespace app\index\validate; use think\Validate; class User extends Validate protected $rule = [ 'user_name' => 'require|alphaNum', 'password' => 'require', ]; protected $message = [ 'user_name.require' => '请输入账号', 'user_name.alphaNum' => '账号只能是数字和字母', 'password.require' => '请输入密码', ]; protected $scene = [ 'login' => ['user_name', 'password'], 'register' => ['user_name', 'password'], ]; //生成中间件 php think make:middleware Check 
param(); //获取访问模块 $module = $request->module(); //获取访问控制器 $controller = ucfirst($request->controller()); //获取操作名,用于验证场景scene $scene = $request->action(); $validate = "app\\" . $module . "\\validate\\" . $controller; //仅当验证器存在时 进行校验 if (class_exists($validate)) { $v = $this->app->validate($validate); if ($v->hasScene($scene)) { //仅当存在验证场景才校验 $result = $this->validate($params, $validate . '.' . $scene); if (true !== $result) { //校验不通过则直接返回错误信息 return json(['code' => -1, 'msg' => $result]); } } } return $next($request); } }

 

转载于:https://www.cnblogs.com/ssx314/p/10232422.html

你可能感兴趣的文章
rabbitmq3.7集群搭建实战
查看>>
深入理解Asp.net MVC路由
查看>>
正则化方法:L1和L2 regularization、数据集扩增、dropout
查看>>
java是编译型语言还是解释型语言?
查看>>
day4 小结
查看>>
语系/地区码
查看>>
【非原创】LightOJ - 1284 Lights inside 3D Grid【概率期望】
查看>>
【前端优化之拆分CSS】前端三剑客的分分合合
查看>>
Sublime Python3编译环境修改
查看>>
Linux系统修改防火墙配置
查看>>
cocos2d 触屏事件
查看>>
技术人生:他们的毅力超过才力
查看>>
ibatis.net:在VS中支持xml智能提示
查看>>
spring+springmvc+mybaties整合实例
查看>>
window.open 子窗口关闭刷新父页面
查看>>
Hibernate的几种主键生成策略
查看>>
“速达”app电梯演说
查看>>
Crawl(1)
查看>>
设备事件
查看>>
vue入门:(组件)
查看>>