如何高效运用ThinkPHP5.0验证类进行数据验证?
- 内容介绍
- 文章标签
- 相关推荐
本文共计457个文字,预计阅读时间需要2分钟。
通过一个实例,给家长们解释一下如何通过ThinkPHP5.0验证类的方法。
自定义验证类,需要继承Validate类。比如在home模块新建validate文件夹,再新建Test.php验证类,内容如下:
php
use think\validate\Validate;
class Test extends Validate{ protected $rule=[ 'name'=> 'require|max:25', 'age'=> 'number|between:1,120', ];
protected $message=[ 'name.require'=> '用户名不能为空', 'name.max'=> '用户名最多不能超过25个字符', 'age.number'=> '年龄必须是数字', 'age.between'=> '年龄必须在1到120之间', ];}
这样,我们就创建了一个名为Test的验证类,其中定义了两个规则:name和age。接下来,在Test.php文件所在的控制器中,我们可以这样使用这个验证类:
php
use think\Request;use app\home\validate\Test;
class User extends Controller{ public function save(Request $request) { $data=$request->post(); $validate=new Test(); if (!$validate->check($data)) { return json(['code'=> 0, 'msg'=> $validate->getError()]); } // 验证通过后的操作 }}
通过一个实例,给大家讲解一下如果通过thinkphp5.0验证类的方法。
自定义验证类,需继承Validate类
比如在home模块新建validate文件夹,再新建Test.php验证类,内容如下:
<?php namespace app\home\validate; use think\Validate; class Test extends Validate { protected $rule = [ 'name' => 'require|regex:/.{6}/', 'age' => 'number|between:1,120', 'email' => 'email' ]; protected $message = [ 'name.require' => 'name不能少', 'name.regex' => 'name不能少于6个字符', 'age.number' => 'age必须是数字', 'age.between' => 'age必须在1到120之间', 'email.email' => 'email格式不对', ]; protected $scene = [ 'name_email' => ['name','email'], ]; } ?>
在Index控制器test方法使用
<?php namespace app\home\controller; use think\Loader; use think\Controller; class Index extends Controller { public function test(){ $date = [ 'name'=>'qw2e', 'email'=>'12313' ]; //$validate = Loader::validate('Test');//使用加载类Loader $validate = validate('Test');//使用助手函数 $result = $validate->scene('name_email')->check($date); if(!$result){ dump($validate->getError()); } } }
以上就是我们给出的验证类的实例方法,如果还有哪里不明白,大家可以在下方留言一起讨论。
本文共计457个文字,预计阅读时间需要2分钟。
通过一个实例,给家长们解释一下如何通过ThinkPHP5.0验证类的方法。
自定义验证类,需要继承Validate类。比如在home模块新建validate文件夹,再新建Test.php验证类,内容如下:
php
use think\validate\Validate;
class Test extends Validate{ protected $rule=[ 'name'=> 'require|max:25', 'age'=> 'number|between:1,120', ];
protected $message=[ 'name.require'=> '用户名不能为空', 'name.max'=> '用户名最多不能超过25个字符', 'age.number'=> '年龄必须是数字', 'age.between'=> '年龄必须在1到120之间', ];}
这样,我们就创建了一个名为Test的验证类,其中定义了两个规则:name和age。接下来,在Test.php文件所在的控制器中,我们可以这样使用这个验证类:
php
use think\Request;use app\home\validate\Test;
class User extends Controller{ public function save(Request $request) { $data=$request->post(); $validate=new Test(); if (!$validate->check($data)) { return json(['code'=> 0, 'msg'=> $validate->getError()]); } // 验证通过后的操作 }}
通过一个实例,给大家讲解一下如果通过thinkphp5.0验证类的方法。
自定义验证类,需继承Validate类
比如在home模块新建validate文件夹,再新建Test.php验证类,内容如下:
<?php namespace app\home\validate; use think\Validate; class Test extends Validate { protected $rule = [ 'name' => 'require|regex:/.{6}/', 'age' => 'number|between:1,120', 'email' => 'email' ]; protected $message = [ 'name.require' => 'name不能少', 'name.regex' => 'name不能少于6个字符', 'age.number' => 'age必须是数字', 'age.between' => 'age必须在1到120之间', 'email.email' => 'email格式不对', ]; protected $scene = [ 'name_email' => ['name','email'], ]; } ?>
在Index控制器test方法使用
<?php namespace app\home\controller; use think\Loader; use think\Controller; class Index extends Controller { public function test(){ $date = [ 'name'=>'qw2e', 'email'=>'12313' ]; //$validate = Loader::validate('Test');//使用加载类Loader $validate = validate('Test');//使用助手函数 $result = $validate->scene('name_email')->check($date); if(!$result){ dump($validate->getError()); } } }
以上就是我们给出的验证类的实例方法,如果还有哪里不明白,大家可以在下方留言一起讨论。

