您的位置:首页 > 编程语言 > PHP开发

每天学点tp-自动验证(三)

2016-12-30 20:56 176 查看
首先讲讲tp的指定表字段,在模型中我们可以指定表字段,这样的话当我们创建了一个数据对象,$mod->create(),就可以直接使用add,不必再次指定主键,具体实现如下:

在model里面指定

protected $fields=array(
'id',
'username',
'sex',
'age',
'createTime',
'password',
'_pk'=>'id'
);

tp字段映射

这个功能可以实现对数据库字段的保护,具体实现是在表单中的字段名name设置成与数据库字段不一致,当我们使用
create
方法创建数据对象的时候,会自动转换成定义的实际数据表字段。代码如下:

protected $_map = array(         
'name' =>'username', // 把表单中name映射到数据表的username字段
'pass' =>'password', // 把表单中pass映射到数据表的password字段
);

tp自动填充

自动完成是ThinkPHP提供用来完成数据自动处理和过滤的方法,使用create方法创建数据对象的时候会自动完成数据处理。可以处理密码加密,或者给表单没有的字段赋值。

 protected $_auto = array (          
array('password','doPass',1,'callback') , // 对password字段在新增和编辑的时候使md5函数处理         
array('createTime','time',1,'function'), // 对update_time字段在更新的时候写入当前时间戳     
);

第一个参数表示你要操作的字段,第二个参数处理的规则(可以用自定义函数,也可以使用系统函数),第三个参数表示处理的时间(增加/编辑),第四个参数(callback对应自定义函数,function对应系统函数,ignore表示为空则忽略)

自动验证
protected $_validate = array(     
array('verify','require','验证码必须填写!'), 
array('username','/^.{4,16}$/','用户名格式不正确!',1,'regex',1), //在新增的时候验证name字段格式         
//array('username','require','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一     
array('password','/\w{6,10}/','密码格式不正确',0,'regex',1), // 自定义函数验证密码格式   
array('repassword','password','确认密码不正确',0,'confirm'), // 验证确认密码是否和密码一致     
array('age','checkAge','年龄不符合格式',0,'callback',1),
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: