首页 > 编程 > PHP > 正文

ThinkPHP自动建数据 自动验证 自动完成详细例子介

2020-03-22 20:03:37
字体:
来源:转载
供稿:网友
  • 1:自动创建数据

    //$name=$_POST['name'];
    //$password=$_POST['password']; ---这个注册页面传过来的POST值
    下面用了自动穿件create方法就可以不用这个,会行动绑定
    $user =M('User');
    $User->create(); //会将传过来的$_POST数据对应到数据库的字段
    $user->add(); //就可以直接写入


    2:自动验证(只需要在Model类里面定义$_validate属性)

    使用步骤(注册验证User表)

    一:创建User表自定义的Mode --->HomeLibModelUserModel.html' target='_blank'>class.php
    <?php
    //注意:code username password....都是你表单里面的name值,要对应
    //表单里面字段名字定义的
    class UserModel extends Model{
    protected $_validate=array(
    array('code','require','验证码必须填写!'),
    array('code','checkCode','验证码错误!',0,'callback',1), //使用回调函数checkCode
    array('username','require','用户必须填写!'),
    array('username','','用户已经存在',0,'unique',1),
    array('username','/^w{6,}$/','用户名必须6个字母以上',0,'regex',1),
    array('repassword','password','确认密码不正确',0,'confirm'),
    );


    protected function checkCode($code){
    if(md5($code)!=$_SESSION['code']){
    return false;
    }else{
    return true;
    }
    }
    }
    ?>


    //控制请值对应的注册方法
    <?php
    class RegisterAction extends Action{
    public function doReg(){

    $user=D('User'); //大D方法是会先去找你自定义的Mode,(使用上面创建的UserModel.class.php类)
    //如果有有自定义的用自定义的,否则用原始的 D等同M M!=D

    if(!$user->create()){//会自动去验证 返回一个布尔类型,成功则自动创建数据
    $this->error($user->getError());//获取具体错误信息
    }
    $lastId=$user->add();
    if($lastId){
    $this->redirect('Index/index');
    }else{
    $this->error('用户注册失败');
    }


    }
    }
    ?>

    3:自动完成(做留言的例子)
    步骤:
    一:创建Message表自定义的Mode --->HomeLibModelMessageModel.class.php
    <?php
    class MessageModel extends RelationModel{
    protected $_auto=array(
    array('time','time',1,'function'),
    array('uid','getId',1,'callback')

    );
    protected function getId(){
    return $_SESSION['id'];
    }
    }
    ?>
    二:控制器中
    <?php
    class MessageAction extends Action{
    public function doLiuyan(){
    $message=D('Message');
    //$message->time=time();
    //$message->uid=$_SESSION['id']; 这2个值将在自定义MessageModel中自动填充完成

    $message->add(); //返回值是新增的id号
    }
    }
    ?>


    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表