zoukankan      html  css  js  c++  java
  • ThinkPHP中的三大自动简介

    ThinkPHP中的三大自动简介

    文章TAG:thinkphp 自动简介
    时间:2014-08-23来源:商业源码网 作者:源码库 文章热度: 186 ℃
    这篇文章主要介绍了ThinkPHP中的三大自动,是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页面如下:

    <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有一定的帮助作用。

  • 相关阅读:
    python常用模块: random模块, time模块, sys模块, os模块, 序列化模块
    (python)getattr等用法
    (Pytorch)涉及的常见操作
    对PatchGAN的感知域(receptive_field)理解
    心得
    dilated conv、deconv、fractional-strided conv
    (PatchGANs)Pecomputed Real-time Texture Synthesis With Markovian Generative Adversarial Networks
    (Pixel2PixelGANs)Image-to-Image translation with conditional adversarial networks
    CGANs
    Tensorflow--Debug
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4866839.html
Copyright © 2011-2022 走看看