好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ThinkPHP三大自动 - Thinkphp

ThinkPHP三大自动

一、自动验证

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

验证字段:需要验证表单字段名称

验证规则:必须要结合附加规则一起使用

错误提示:如果出现错误,抛出一个什么样的错误提示告知用户

附加规则:1、regex使用正则验证 2、function使用函数验证 3、callback回调 4、confirm验证表单当中两个字段是否相同 5、验证是否等于某个值 6、in是否在某一个范围内 7、验证是否唯一

TP封装:require 字段必须验证;eamil 验证邮箱;url 验证url地址;currency 货币;number 数字;

验证时间:指数据库操作时间的验证时机,新增数据时验证Model::MODEL_INSERT;编辑的时候验证Model::MODEL_UPDATE;全部情况下验证Model::MODEL_BOTH;

aoli/Home/Tpl/default/User/reg.html

< form   action = "__URL__/regadd"   method = "post" >       用户名: < input   type = "text"   name = "username"   /> < br   />       密码: < input   type = "password"   name = "password"   /> < br   />       重复密码: < input   type = "password"   name = "repassword"   /> < br   />       注册时间: < input   type = "text"   name = "createtime"   /> < br   />       注册IP: < input   type = "text"   name = "createip"   /> < br   />        < input   type = "submit"   value = "注册"   />   </ form >  

aoli/Home/Lib/Model/UserModel.class.php

<?php     class  UserModel  extends  Model{ //对应数据库中的表user          protected   $_validate = array (             array ( 'username' , 'require' , '用户名必填' ),             array ( 'username' , 'checklen' , '用户名长度过长或过短' ,0, 'callback' ),             array ( 'password' , 'require' , '密码必填' ),             array ( 'repassword' , 'require' , '重复密码必填' ),             array ( 'password' , 'repassword' , '两次密码不一致' ,0, 'confirm' ),             array ( 'createtime' , 'number' , '您输入的不是数字' ),             array ( 'createip' , 'email' , '邮箱格式不正确' ),        );           function  checklen( $data ){             if ( strlen ( $data )>15 ||  strlen ( $data )<5){                 return  false;            } else {                 return  true;            }        }               }    ?> 

aoli/Home/Lib/Action/UserAction.class.php

<?php          class  UserAction  extends  Action {          function  reg(){              $this ->display();              }          function  regadd(){              $user =D( 'user' );              if ( $user ->create()){                  if ( $user ->add()){                      $this ->success( '注册成功' );                      } else {                      $this ->error( '注册失败' );                      }             } else {                  $this ->error( $user ->getError());                  }               }          }    ?> 

二、自动完成(自动填充)

自动完成也是ThinkPHP当中的一个成员方法,在create的时候,自动执行

array('填充字段','填充内容','填充条件','附加规则');

protected   $_auto  =  array  (          //array( 'status','1'),   //  新增的时候把 status 字段设置为 1          array ( 'password' , 'md5' ,1, 'function' ) ,   //  对 password 字段在新增的时候使 md5 函数处理          array ( 'createtime' , 'time' ,3, 'function'  ),   //  对 create_time 字段在更新的时候写入当前时间戳       );  

三、自动映射(字段映射)

自动映射:将数据库的字段映射成别名,在表单中就可以使用别名了.

protected   $_map  =  array (          'name'  =>  'username' ,       'pass'  =>  'password' ,  );  

查看更多关于ThinkPHP三大自动 - Thinkphp的详细内容...

  阅读:70次