ThinkPHP 不创建模型类如何自动验证
我们知道,ThinkPHP的模型有自动验证和自动完成功能,但是通常我们需要在模型类里面定义验证因子和完成因子。这样的话,我们使用M方法实例化模型的时候就不能使用内置的自动完成和自动验证功能了,其实仍然有办法的,因为TP提供了一个强大的属性动态更改的方法setProperty。利用该方法就完全可以用M方法实现自动验证功能了,例如:
$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());
}
完成自动验证和自动完成只是setProperty方法的一个小技巧而已,更强大的功能还需要你去发挥了。
你用TP搭建的那些系统,后台功能怎么样? 现在我想做个后台功能比较不错的小系统。
@crossyou
功能都是自己写的呀。 TP只是个框架,用起来方便些。