当前位置:首页 > 在线留言 >

ThinkPHP中自动验证

发布时间:2017-09-05 12:07:05 作者:陕西誉丰源物资有限公司

ThinkPHP中自动验证

ThinkPHP中自动验证:array(‘字段’,‘验证规则’,‘错误提示’[,‘验证条件’,‘附加规则’,‘验证时间’]),。

1、验证字段:一般来说是表单的字段名,但不一定需要与数据表的字段匹配,比如新用户注册时常见的密码确认
2、验证规则:系统内置了常用的规则,require(字段必填)、 email(邮箱格式)、url(url格式)、currency(货币)、number(正整数)、integer(整数)、double(浮点数)、zip(邮
政编码
政编码)、english。这些规则默认采用的附加规则是 regex,正则表达式验证,只不过是设定好的。
3、错误信息:验证失败后的提示。
4、验证条件:共三种:
1.self::EXISTS_VALIDATE 或 0,表示存在字段就验证(推荐使用) ;
2.self::MUST_VALIDATE 或 1,表示必须验证;
3.self::VALUE_VALIDATE 或 2,表示值不为空的时候验证。
5、验证时间:主要新增修改等验证。
1.self::MODEL_INSERT 或 1 新增数据时验证;
2.self::MODEL_UPDATE 或 2 编辑数据时验证;
3.self::MODEL_BOTH 或 3 全部情况下验证(推荐使用)。 一、静态定义 在模型类里预先定义好该模型的自动验证规则,就是静态定义。 1、在Home/Model目录下建立UserModel.class.php文件,内容如下: class UserModel extends Model { protected $_validate = array( //默认情况下用系统内置 array('user', 'require', '用户不得为空!'), //验证数据唯一性 array('user', '', '用户名称已存在!',2,'unique',1), //验证密码不得为空 array('pass', 'require', '密码不得为空!'), //密码不得小于六位不得大于20位 array('pass', '6,20', '密码不得小于6位,不得大于20位', 3,'length'), ); }

2、在Home/controller目录下建立Usercontroller.class.php,内容如下:

//控制器create()方法自动调用验证 $user = D('User'); $data['user'] = '蜡笔小新'; $data['pass'] = '123'; if ($user->create($data)) { echo '所有数据验证成功!'; } else { //输出错误信息 var_dump($user->getError()); } 重点介绍一下附加规则中的callback(回调验证)和function(函数验证):

1、callback(回调验证)

UserModel.class.php中的格式如下:

class UserModel extends Model{ protected $_validate=array( array('user','checklength','用户名必须在3-5之间!',0,'callback',3,array(3,5)), ); function checklength($str,$min,$max){ preg_match_all("/./u", $str,$matchs); $len=count($matchs[0]); if($len<$min || $len>$max){ return false; }else{ return true; } } }

其中回调函数直接写在user类里面

2、function(函数验证)

UserModel.class.php中的格式如下:

class UserModel extends Model{ protected $_validate=array( array('user','checklength','用户名必须在3-5之间!',0,'function',3,array(3,5)), ); }

函数内容需要在 Home/Common 文件夹下的 Common 文件夹建立 function.php 文件,会自动加载,内容如下:

function checkLength($str,$min,$max) { preg_match_all("/./u", $str, $matches); $len = count($matches[0]); if ($len < $min || $len > $max) { return false; } else { return true; } }

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:湖北网站制作 http://hubei.666rj.com

  • 上一篇:SEO排名与搜索引擎的关系
  • 下一篇:最后一页