从ThinkPHP迁移项目 - 验证器

优质
小牛编辑
134浏览
2023-12-01

Github : ThinkValidate - 从ThinkPHP5.1独立出来的验证器类库

安装

  1. composer require topthink/think-validate

直接在控制器中使用

验证器没有额外的配置文件,可以直接现场定义规则,对数据进行验证,用法与ThinkPHP的控制器验证是一致的

  1. use thinkValidate;
  2. $validate = Validate::make([
  3. 'name' => 'require|max:25',
  4. 'email' => 'email'
  5. ]);
  6. $data = [
  7. 'name' => 'thinkphp',
  8. 'email' => 'thinkphp@qq.com'
  9. ];
  10. if (!$validate->check($data)) {
  11. var_dump($validate->getError());
  12. }

使用预定义验证器文件

如果原项目已经有验证器,可以直接复制过来,修改对应的命名空间即可直接使用

  1. namespace AppValidate;
  2. use thinkValidate;
  3. class User extends Validate
  4. {
  5. protected $rule = [
  6. 'name' => 'require|max:25',
  7. 'age' => 'number|between:1,120',
  8. 'email' => 'email',
  9. ];
  10. protected $message = [
  11. 'name.require' => '名称必须',
  12. 'name.max' => '名称最多不能超过25个字符',
  13. 'age.number' => '年龄必须是数字',
  14. 'age.between' => '年龄只能在1-120之间',
  15. 'email' => '邮箱格式错误',
  16. ];
  17. }

验证器的调用代码如下

  1. $data = [
  2. 'name' => 'thinkphp',
  3. 'email' => 'thinkphp@qq.com',
  4. ];
  5. $validate = new AppValidateUser;
  6. if (!$validate->check($data)) {
  7. var_dump($validate->getError());
  8. }

更多验证器用法可以参考5.1完全开发手册的验证章节