think-validate迁移版基于thinkORM
v1.0.2
版本
2025-09-11
版本更新时间
25
安装
1
star
superadminx_think_validate
基于thinkphp validate全功能版,用于webman框架的validate数据验证器,插件市场已经有think的validate了,但是很久没更新了不然我也不会在弄一个,而直接使用top-think/think-validate又无法使用unquire唯一性验证
- 支持unquire唯一性验证(基于TP Db类)
变化如下
-
任何use的时候
如use think\Validate; 变为use superadminx\think_validate\Validate;
就是将use think变为use superadminx\think_validate -
validate函数变为 think_validate函数
因为安装webman/think-orm的时候,think-orm里面也会安装topthink/think-validate导致validate函数被占用,所以改了函数名
用法完全跟tp验证一致,更多用法可以参考ThinkPHP开发手册的验证章节
安装
composer require superadminx/think_validate
用法
定义验证器
namespace app\validate;
use superadminx\think_validate\Validate;
class UserValidate extends Validate
{
// 定义规则
protected $rule = [
'name' => 'require|max:25',
'age' => 'number|between:1,120',
'email' => 'email',
];
// 定义信息
protected $message = [
'name.require' => '名称必须',
'name.max' => '名称最多不能超过25个字符',
'age.number' => '年龄必须是数字',
'age.between' => '年龄只能在1-120之间',
'email' => '邮箱格式错误',
];
//定义场景
protected $scene = [
'edit' => ['name','age'],
];
}
验证器调用代码如下:
<?php
namespace app\controller;
use app\validate\UserValidate;
use superadminx\think_validate\exception\ValidateException;
class Index
{
public function index()
{
try {
think_validate(UserValidate::class)->check([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com',
]);
} catch (ValidateException $e) {
// 验证失败 输出错误信息
var_dump($e->getError());
}
}
}
更多用法可以参考ThinkPHP开发手册的验证章节
特别说明
感谢 ThinkPHP,webman