存档

文章标签 ‘setProperty方法’

ThinkPHP不创建模型类进行自动验证

2009年12月29日 admin 没有评论

我们知道,ThinkPHP的模型有自动验证和自动完成功能,但是通常我们需要在模型类里面定义验证因子和完成因子。这样的话,我们使用M方法实例化模型的时候就不能使用内置的自动完成和自动验证功能了,其实仍然有办法的,因为TP提供了一个强大的属性动态更改的方法setProperty。利用该方法就完全可以用M方法实现自动验证功能了,
例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$User = M('User');
$auto = array (
array('status','1'), // 新增的时候把status 字段设置为 1
array('password','md5',1,'function') // 对 password 字段在新增的时候使md5 函数处理
array('name','getName',1,'callback') // 对 name 字段在新增的时候回调 getName 方法
array('create_time','time',2,function), // 对 create_time 字段在更新的时候写入当前时间戳
);
$validate = array(
array('verify','require','验证码必须!'), //默认情况下用正则进行验证
array('repassword','password','确认密码不正确',0,’confirm’), // 验证确认密码是否和密码一致
array('password','checkPwd','密码格式不正确',0,function), // 自定义函数验证密码格式
);
$User->setProperty('_auto',$auto);
$User->setProperty('_validate',$validate);
if($User->create()){
  $User->add();
}else{
  $this->error($User->getError());
}