<?php class UserModel extends Model{ //user是表的名称 必须以表名开始,继承Model类 protected $_validate=array( //array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间]); array('code','require','验证码必须填写!'), array('code','checkCode','验证码错误!',0,'callback',1),//callback方法验证,定义的验证规则是当前模型类的一个方法 array('username','require','用户必须填写!'), array('username','','用户已经存在',0,'unique',1), array('username','/^w{6,}$/','用户名必须6个字母以上',0,'regex',1),//regex 正则验证,定义的验证规则是一个正则表达式(默认) array('repassword','password','确认密码不正确',0,'confirm'), ); protected function checkCode($code){ if(md5($code)!=$_SESSION['code']){ return false; }else{ return true; } } } ?>
以上是三大自动中的自动验证,自动创建为create(),自动完成为变量$_auto
<?php class MessageModel extends RelationModel{ //自动完成 array(填充字段,填充内容,[填充条件,附加规则]) protected $_auto=array( array('time','time',1,'function'), array('uid','getId',1,'callback') );
//关联模型 protected $_link=array( 'User'=> array( 'mapping_type'=>BELONGS_TO, 'class_name'=>'User',//要关联的模型类名 'foreign_key'=>'uid', 'mapping_name'=>'user',//关联的映射名称,用于获取数据用 'mapping_fields'=>'username',//关联要查询的字段 'as_fields'=>'username',//直接把关联的字段值映射成数据对象中的某个字段 //'as_fields'=>'username:uname',//直接把关联的字段值映射成数据对象中的某个字段 : 更改名字防止冲突 ), ); protected function getId(){ return $_SESSION['id']; } } ?>
关联模型的使用