当前位置: 首页 > news >正文

Thinkphp5.0命令行创建验证器validate类

前言

最近接手了个用FastAdmin(基于tp5)写的项目,发现命令行只提供生成controller和model的命令,没有提供make:validate命令,而5.1及以上版本是有的,对于使用tp5.0框架或者基于tp5.0的第三框架(如:FastAdmin)的项目非常不友好。做了个扩展来添加make:validate命令生成validate类。扩展的逻辑是从5.1框架源码直接复制过来的,所以验证器用法跟官方的一模一样,请放心使用。

github地址:https://github.com/jian1098/tp5-validate

注意:本扩展仅适用于Thinkphp5.0版本,更高的版本还是推荐使用自带的命令。

如何使用

1.安装扩展

composer require jian1098/tp5-validate:dev-master

2.注册命令

打开application/command.php,在数组中增加一行引入即可

return ['Jian1098\Tp5Validate\Command\Validate'
];

在命令行输入php think查看命令行列表,可以看到make:validate命令已添加

Think Console version 0.1
...makemake:controller    Create a new resource controller classmake:model         Create a new model classmake:validate      Create a new validate class
...

3.创建验证器

根据5.1版本的文档创建即可

php think make:validate TestValidate

该命令会生成application/common/validate/TestValidate.php文件

4.控制器中调用验证器

  • 先在上面创建的TestValidate.php中填写验证规则和验证场景

    <?phpnamespace app\common\validate;use think\Validate;class TestValidate extends Validate
    {/*** 定义验证规则* 格式:'字段名'	=>	['规则1','规则2'...]** @var array*/protected $rule = ['email' => 'require|email','password' => 'require|min:6',];/*** 定义错误信息* 格式:'字段名.规则名'	=>	'错误信息'** @var array*/protected $message = ['email.email' => '邮箱格式不正确',];/*** 验证场景定义* 格式:'场景名称'	=>	['字段1','字段2'...]** @var array*/protected $scene = ['login' => ['email', 'password'],];
    }
    
  • 在控制器中验证

    <?phpnamespace app\index\controller;use think\Controller;class Test extends Controller
    {public function index(){$data = $this->request->param();$result = $this->validate($data,'TestValidate.login');if(true !== $result){// 验证失败 输出错误信息dump($result);exit();}echo 'success';}
    }
    
http://www.lryc.cn/news/339679.html

相关文章:

  • 人民网至顶科技:《开启智能新时代:2024中国AI大模型产业发展报告发布》
  • AI大模型探索之路-应用篇13:企业AI大模型选型指南
  • 【安全】查杀linux上c3pool挖矿病毒xmrig
  • 车载测试:UDS之BootLoader刷写
  • OpenHarmony实战开发-MpChart图表实现案例。
  • brpc: bthread使用
  • H.265视频直播点播录像EasyPlayer.js流媒体播放器用户常见问题及解答
  • 蓝桥杯杂题选做
  • 【HTML】简单制作一个分形动画
  • JVM修炼之路【11】- 解决内存溢出、内存泄漏 以及相关案例
  • Java面试题:描述Java 17中的密封接口及其用途
  • C++11的新特性
  • 【C语言__动态内存管理__复习篇6】
  • C语言 | Leetcode C语言题解之第30题串联所有单词的子串
  • 大数据dolphinscheduler 本地容器化安装
  • 简单的车牌号识别
  • openGauss学习笔记-261 openGauss性能调优-使用Plan Hint进行调优-将部分Error降级为Warning的Hint
  • CSS水波纹效果
  • 迭代器模式:优雅地遍历数据集合
  • c++总结笔记(一)
  • [python][gradio]chatbot控件用法
  • Sublime Text下载,安装,安装插件管理器,下载汉化插件
  • c++ ,stl经常出现的<>尖括号其实就是模板类的实例化
  • goproxy 简单介绍 及一键安装脚本
  • Day13-Python基础学习之数据分析案例
  • 研究生,该学单片机还是plc。?
  • 【Java】导出Mysql表表结构与注释数据字典
  • 第07-2章 TCP/IP模型
  • 【办公类-21-15】 20240410三级育婴师 712道单选题(题目与答案合并word)
  • Vue3+Vant开发:登录功能