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
...
make
make:controller Create a new resource controller class
make:model Create a new model class
make:validate Create a new validate class
...
3.创建验证器
根据5.1版本的文档创建即可
php think make:validate TestValidate
该命令会生成application/common/validate/TestValidate.php
文件
4.控制器中调用验证器
-
先在上面创建的
TestValidate.php
中填写验证规则和验证场景<?php namespace 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'], ]; }
-
在控制器中验证
<?php namespace 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'; } }
原文地址:https://blog.csdn.net/C_jian/article/details/137771056
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!