模型验证-j9九游
在模型中的验证方式如下:
$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 app\index\validate;
use think\validate;
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());
}
文档最后更新时间:2018-04-26 10:47:18
未解决你的问题?请到「问答社区」反馈你遇到的问题