①自动验证
在控制器对应的模型里边 设置validate属性
规则:
array(
array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
......
);
字段应该跟name 以及数据库对应
protected $_validate = array( array(‘username‘, ‘/^[a-z]+[A-z]*\d+[a-zA-Z0-9]*/‘, ‘用户名不能为空‘), //用户名验证 array(‘password‘, ‘require‘, ‘密码不能为空‘), array(‘password2‘, ‘password‘, ‘两次密码输入不相同‘, 0, ‘confirm‘), array(‘user_email‘, ‘email‘, ‘邮箱格式有误‘), array(‘user_qq‘, ‘/^[1-9]\d{4,11}$/‘, ‘QQ号有误‘), array(‘user_tel‘, ‘/^1[3,5,8]\d{9}$/‘, ‘手机号不正确,或者位数不正确‘), array(‘user_sex‘, array(1, 2, 3), ‘性别是必选项‘, 0, ‘in‘), array(‘user_xueli‘, array(2, 3, 4, 5), ‘请选择学历‘, 0, ‘in‘), array(‘user_hobby‘, ‘checkbobby‘, ‘至少选择两个爱好‘, 1, ‘callback‘), array(‘user_introduce‘, ‘checkIntroduceslenth‘, ‘必须大于12个字‘, 1, ‘callback‘) ); //具体的验证规则可以参考手册说明
②自动完成(填充)
在插入数据之前,或许我们需要对数据进行处理,在不增加程序逻辑的前提下可以使用TP框架的自动完成功能
自动完成于自动验证比较类似,
- array(填充字段,填充内容,[填充条件,附加规则])
如下
//自动完成 protected $_auto = array ( array(‘password‘,‘md5‘,3,‘function‘) , array(‘password2‘,‘md5‘,3,‘function‘) ,// 对password字段在新增和编辑的时候使md5函数处理 array(‘user_introduce‘,‘setName‘,3,‘callback‘),//callback 表示填充内容setName是当前模型的 一个方法 array(‘register_time‘,‘time‘,3,‘function‘)
③自动映射
通常情况下 模板中的name属性的值表示了数据库表中的某个字段,倘若name的值跟数据库中的表字段无法对应上,在CRUD的时候可能会出现找不到字段的相关错误提示,如果插入的时候,那么该字段的值会被替换为空值 插入到数据库中.
自动映射能够解决name属性值与数据库中表字段不同的而出现的相关的问题.
使用规则如下:
protected $_map = array( ‘name‘ =>‘username‘, // 把表单中name映射到数据表的username字段 ‘mail‘ =>‘email‘, // 把表单中的mail映射到数据表的email字段 );
ThinkPHP三大自动
时间: 2024-10-24 23:18:33