ThinkPHP中的三大自动简介
本文较为详细的讲述了ThinkPHP中的三大自动,是非常重要的应用,分享给大家供大家参考。具体如下:
一、自动验证
格式如下:
array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间')
参数说明:
验证字段:需要验证表单字段名称
验证规则:必须要结合附加规则一起使用
错误提示:如果出现错误,抛出一个什么样的错误提示告知用户
验证条件:0、1、2
附加规则: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页面如下:
<formaction="__URL__/regadd"method="post"> 用户名:<inputtype="text"name="username"/><br/> 密码:<inputtype="password"name="password"/><br/> 重复密码:<inputtype="password"name="repassword"/><br/> 注册时间:<inputtype="text"name="createtime"/><br/> 注册IP:<inputtype="text"name="createip"/><br/> <inputtype="submit"value="注册"/> </form>
aoli/Home/Lib/Model/UserModel.class.php页面如下:
<?php classUserModelextendsModel{//对应数据库中的表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','邮箱格式不正确'), ); functionchecklen($data){ if(strlen($data)>15||strlen($data)<5){ returnfalse; }else{ returntrue; } } } ?>
aoli/Home/Lib/Action/UserAction.class.php页面如下:
<?php classUserActionextendsAction{ functionreg(){ $this->display(); } functionregadd(){ $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有一定的帮助作用。