ThinkPHP中自动验证:array(‘字段’,‘验证规则’,‘错误提示’[,‘验证条件’,‘附加规则’,‘验证时间’]),。
1、验证字段:一般来说是表单的字段名,但不一定需要与数据表的字段匹配,比如新用户注册时常见的密码确认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()); }
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; } }