thinkphp自动验证学习-创新互联

@ php 学习 thinkphp 验证

成都创新互联是一家集网站建设,河南企业网站建设,河南品牌网站建设,网站定制,河南网站建设报价,网络营销,网络优化,河南网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1,在thinkphp 中可以对create创建的数据对象进行验证 ,一般有两种验证方式: 静态验证,动态验证

  1.1,静态验证: 在模型类里面通过$_validate属性定义验证规则

   (1)验证格式:

     array(                      array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),           )

     1,验证字段: 为数据表里的字段,同时也可以其他表单辅助字段,并且可以自定义并将自定义的字段映射到数据表的字段名

      如:

       Class UserModel extends Model             {                protected $_map = array(                       'name' =>'username', // 把表单中name映射到数据表的username字段                       'mail'  =>'email', // 把表单中的mail映射到数据表的email字段                );             }

     2,验证规则: 系统还内置了一些常用正则验证的规则 有require (字段必填),email(邮箱格式),

                url(url格式),currency(货币),number (正整数)  ,integer(整数),double(浮点

               数),zip(邮政编码),english(英文),并且这些规则默认附加规则是regex, 还有正

                则表达式验证规则,但需要自定义设定好

     3,错误提示: 自定义

     4,验证条件:

       包含下面几种情况:

self::EXISTS_VALIDATE 或者0 存在字段就验证(默认)

self::MUST_VALIDATE 或者1 必须验证

self::VALUE_VALIDATE或者2 值不为空的时候验证

     5,附加条件: 参考手册 ,其中function 和callback 两种附加条件

       5.1 callback 附加规则 ,其定义的验证规则为callback 方法的名字,附加规则为callback

       如下例:

       array(验证字段1,checkLength,错误提示,[验证条件,callback,验证时间,callback函数的参数]),其中checkLength中的$min ,$max 的实参可以定义为 array(3,5)。为$min 传的值为3,$max传的值为5

                protected function checkLength ($str,$min,$max)                    {                  preg_match_all("/./u",$str,$matches);                  $len = count($matches[0]);                  if($len<$min || $len>$max){                      return false;                  }else{                    return true;                  }                   }

        5.1 function 附加规则是相对与callback附加规则一样,只是将定义的规则方法,放在

           Common 文件下Conmon文件夹建立function.php文件,后会自定调用此规则。

      6,验证时间:

              self::MODEL_INSERT或者1新增数据时候验证

  self::MODEL_UPDATE或者2编辑数据时候验证

  self::MODEL_BOTH或者3全部情况下验证(默认)

     7 ,多字段验证:

  在UserModel类中增加 :protected $patchValidate = true;

  (2)静态验证完整格式

         public  UserModel extends Model          {      protected $_validate = array(           array('verify','require','验证码必须!'), //默认情况下用正则进行验证                    array('name','','帐号名称已经存在!',0,'unique',1), // 在新增的时候验证name字段是否唯一                 array('password','checkPwd','密码格式不正确',0,'function'), // 自定义函数验证密码格式   );          }

   根据model定义好验证规则后,就可以在使用create方法创建数据对象的时候自动调用

            public UserController extends Controller            {              public function add ()             {    //判断是由post 上传的数据            if(IS_POST){               if (!$User->create()){                    // 如果创建失败 表示验证没有通过 输出错误提示信息                      exit($User->getError());                 }else{                      // 验证通过 可以进行其他数据操作                 }            }              }           }

  1.2,动态验证: 使用模型类的validate方法动态创建自动验证规则

    在UserController 类的方法中定义

         $rules = array(                             array('verify','require','验证码必须!'), //默认情况下用正则进行验证                  );          $User = M("User"); // 实例化User对象          if (!$User->validate($rules)->create())          {               // 如果创建失败 表示验证没有通过 输出错误提示信息               exit($User->getError());            }else{                 // 验证通过 可以进行其他数据操作                 }

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网页标题:thinkphp自动验证学习-创新互联
本文URL:http://scyanting.com/article/dcgshh.html