搜索
系统检测到您的用户名不符合规范:

TP5怎么用验证器来区分插入数据和更新数据才验证?

浏览:4646 发布日期:2016年05月26日 分类:ThinkPHP5专区 关键字: 验证器
我定义了一个验证器,如下//定义验证规则
protected $rule = [
'email' => 'require|email|unique:users',
'password' => 'require|min:6',
're-password' => 'require|confirm:password',
];

//定义验证提示
protected $message = [
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
'email.unique' => '该邮箱已存在',
'password.require' => '密码不能为空',
'password.min' => '密码长度不能小于6位',
're-password.require' => '重复密码不能为空',
're-password.confirm' => '两次密码不一致',
];
在控制器里面我是这么使用的//验证数据
$result = $this->validate($_POST, 'User');
if(true !== $result){
// 验证失败 输出错误信息
return $this->error($result);
}
验证是没有问题,但有一个地方不是很明白,就是上面的email验证规则,我定义了三个,require、email、unique:users,即验证email是否填写、是否是合法的email、数据库是否存在该email。但问题是,假如某种情况下我不需要验证数据库是否存在该email,只是验证是否填写,是否为合法email呢,这该怎么区分?是要再单独写个规则吗?

虽说可以定义验证场景,但那也只是指定某个场景是否要验证哪些数据,并不能指定要用哪些规则。

感觉还是TP3里面的相对好一些,可以指定某个字段的各个验证规则在什么情况下使用,希望在验证器上能增加相应的功能。

如果谁有解决办法,还请不吝赐教,谢谢!
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
8966092
积分:2852 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /