在模型中的验证方式如下:
$User = new User;
$result = $User->validate(
[
"name" => "require|max:25",
"email" => "email",
],
[
"name.require" => "名称必须",
"name.max" => "名称最多不能超过25个字符",
"email" => "邮箱格式错误",
]
)->save($data);
if(false === $result){
// 验证失败 输出错误信息
dump($User->getError());
}
第二个参数如果不传的话,则采用默认的错误提示信息。
如果使用下面的验证器类的话:
namespace appindexvalidate;
use thinkValidate;
class User extends Validate
{
protected $rule = [
"name" => "require|max:25",
"email" => "email",
];
protected $message = [
"name.require" => "用户名必须",
"email" => "邮箱格式错误",
];
protected $scene = [
"add" => ["name","email"],
"edit" => ["email"],
];
}
模型验证代码可以简化为:
$User = new User;
// 调用当前模型对应的User验证器类进行数据验证
$result = $User->validate(true)->save($data);
if(false === $result){
// 验证失败 输出错误信息
dump($User->getError());
}
如果需要调用的验证器类和当前的模型名称不一致,则可以使用:
$User = new User;
// 调用Member验证器类进行数据验证
$result = $User->validate("Member")->save($data);
if(false === $result){
// 验证失败 输出错误信息
dump($User->getError());
}
同样也可以支持场景验证:
$User = new User;
// 调用Member验证器类进行数据验证
$result = $User->validate("User.edit")->save($data);
if(false === $result){
// 验证失败 输出错误信息
dump($User->getError());
}