首页 > 代码库 > ThinkPHP三大自动

ThinkPHP三大自动

①自动验证

        在控制器对应的模型里边 设置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框架的自动完成功能

自动完成于自动验证比较类似,

  1. 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字段
    );