首页 > 代码库 > thinkPHP中的三大自动

thinkPHP中的三大自动

 class UserModel extends Model{
  protected  $_validate=array(

//下面还需要再写数组。一个数组就是一条验证规则
  //array(‘验证字段‘,‘验证规则‘,‘错误提示‘,‘验证条件‘,‘附加规则‘,‘验证时间‘),
  //验证字段:需要验证的表单字段名称,也可以表单当中的一些辅助字段,例如验证码,附加码,重复密码等
  //验证规则,验证规则必须要结合附加规则一起使用
  //错误提示:如果出现错误,抛出一个什么样的错误提示告知用户
  //验证条件:0,1,2()
  //附加规则:
  //       regex 使肜正则进行验证   可以自己在验证规则当中写一个正则表达示(第一上兄弟连论坛下载高老师的正则视频,
  //第二,thinkphp功能强劲他为我们封了一些正则,第三,网上已为了准备了一些常用正则)
  //       function 使用函数进行验证,前面验证规则这个地方必须要写函数名time
  //       callback  是一个回调 他会去找当前UserModel当中的一个成员方法
  //       confirm 验证表单当中的两个字段是否相等。
  //       equal 验主下是否等于某个值
  //  in   是否在某一个范围内 验证规则当中需要写上一个数组
  //       unique 验证是否唯一,系统会要据字段目前的值查询数据库来判断是否有相同的值
  //  
  //      如果用系统内置的一些常用正则,只需要写到错误提示即可,
  //       require 字段必须验证    email验证邮箱   url是验证url地址的   currency货币  number数字
  //  验证时间:   是指数据库操作时间的验证时机
      //  1新增数据的时候进行验证    Model::MODEL_INSERT
      //  2 编辑的时候才进行验证    Model::MODEL_UPDATE
      //  3 全部情况下验证   Model::MODEL_BOTH
  //

   array("user_name","require","用户名必须要填写!"),

   array("user_name","","用户名已经存在",0,"unique",1),
   array("user_name","6,12","用户名必须在6到12位之间",0,"length"),
   array("real_name","require","需要填写真实的姓名!"),
   array("password","require","密码必须要填!"),

   array("password","/^[a-zA-Z0-9]\w{8,}$/i","密码必须包含字母和数字!",1,"regex",1),
   array("password","8,12","密码必须在8到12位之间",0,"length"),
   array("rePassword","require","重复密码必须要填写!"),
   array("password","rePassword","两次输入的密码不一致",0,"confirm"),
   array("email","require","邮箱必须要填写"),
   array("email","email","邮箱格式错误!",1),
   array("verify","require","验证码必须填"),
   array("code","checkCode","验证码输入错误",0,"callback"), 
  );


  protected $_auto=array(

//array(‘填充字段‘,‘填充内容‘,‘填充条件‘,‘附加规则‘);
 //填充字段: 这个字段可以是表单当中的字段,也可以是数据库当中的字段。也可以是一些辅助字段
 //填充内容,配合附加规则一同使用
 //填充条件, 1,2,3分别对应新增、编辑和所有情况下 Model::MODEL_INSERT   (默认参数为新增的时候进行填充)
 // 附加规则,  function  callback, field(用其它字段来填充),表示此处可以拿到其他字段的一个值
 // string , 字符串来填充。这一项,是thinkphp自动完成里面的默认选项
 

   array("password","md5",3,"function"),
   array("age","deal_int",3,"callback"),
  );


  protected $_map=array(
   "username"=>"user_name",   //不同的thinkPHP的版本可能会有差别,注意和$_validate中的字段对应
   "realname"=>"real_name",   //‘是要在表单当中的字段写在前面‘=>‘是写到后面,数据表当中的真实字段写到后面‘,
  );
  
  protected function deal_int($data){
   return (int)$data;
  }
  protected function checkCode($data){
   if(md5($_POST[‘code‘])!=$_SESSION[‘verify‘]){
    return false;
   }
   return true;
  }
 }