>백엔드 개발 >PHP 튜토리얼 >Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다.

Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 20:02:511016검색

Thinkphp의 자동 확인 및 자동 완성은 양식에 제출된 내용을 기반으로 하며, 데이터의 일부는 규칙에 따라 확인 및 처리된 후 데이터베이스에 삽입됩니다.

1. 자동 확인 형식:

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

검증 조건:
self::EXISTS_VALIDATE 또는 0, 필드가 존재하는지 확인(기본값)
self::MUST_VALIDATE 또는 1을 확인해야 합니다.
self::VALUE_VALIDATE 또는 2 값이 비어 있지 않으면 유효성을 검사합니다
확인시간:
Self::MODEL_INSERT 또는 새 데이터 추가 시 1 확인
self::MODEL_UPDATE 또는 2 데이터 편집 시 확인
self::MODEL_BOTH 또는 3 - 모든 경우에 확인(기본값)

2. 자동 완성 형식:

array(
  array(完成字段1,完成规则,[完成条件,附加规则]),
  array(完成字段2,完成规则,[完成条件,附加规则]),
   ......
);

완료 시간:
self::MODEL_INSERT 또는 1 새 데이터 추가 시 처리됨(기본값)
self::MODEL_UPDATE 또는 2 데이터 업데이트 시 처리됨
self::MODEL_BOTH 또는 3 모든 사례가 처리됩니다.

소규모 인스턴스(등록)
HTML 레이아웃:

<form class="form-horizontal" action="{:U('Login/register')}" method="post" autocomplete="off" enctype="multipart/form-data">
  <div class="form-group">
    <label class="col-lg-2 control-label">用户名</label>
    <div class="col-lg-4">
      <input class="form-control" type="text" name="username" />
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">密码</label>
    <div class="col-lg-4">
      <input class="form-control" type="password" name="password" />
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">重复密码</label>
    <div class="col-lg-4">
      <input class="form-control" type="password" name="repassword" />
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다.</label>
    <div class="col-lg-4">
      <input class="form-control" type="file" name="portrait" id="imgpath" />
      <img   style="max-width:90%" src="" id="showimgpath" alt="Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다."/>
      <span class="help-block">关像的大小为80*80px</span>
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">性别</label>
    <div class="col-lg-4">
      <div class="btn-group" data-toggle="buttons">
        <label class="btn btn-default active">
          <input type="radio" name="gender" autocomplete="off" value="1" checked /> 男
        </label>
        <label class="btn btn-default">
          <input type="radio" name="gender" autocomplete="off" value="0" /> 女
        </label>
      </div>
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">电话号码</label>
    <div class="col-lg-4">
      <input class="form-control" type="input" name="phone" />
    </div>
  </div>
  <div class="form-group">
    <label class="col-lg-2 control-label">邮箱</label>
    <div class="col-lg-4">
      <input class="form-control" type="input" name="email" />
    </div>
  </div>
  <div class="form-group">
    <div class="col-lg-2 col-lg-offset-2">
      <button class="btn btn-primary btn-block btn-submit" type="submit">注册</button>
    </div>
  </div>
</form>

모델(MemberModel)

<&#63;php
namespace Admin\Model;
use Think\Model;
class MemberModel extends Model {

  /* 自动验证 */
  protected $_validate = array(
    array('username', '', '用户名是唯一的!', self::EXISTS_VALIDATE, 'unique', self::MODEL_INSERT),
    array('password', 'require', '没有填写密码!', self::EXISTS_VALIDATE, '', self::MODEL_INSERT),
    array('repassword', 'password', '重复密码不正确!', self::EXISTS_VALIDATE, 'confirm', self::MODEL_INSERT),
    array('phone','11','电话号码长度不对!', self::EXISTS_VALIDATE, 'length', self::MODEL_INSERT),
    array('email', 'email', '邮箱格式不正确!',self::EXISTS_VALIDATE, '', self::MODEL_INSERT)
  );

  /* 自动完成 */
  protected $_auto = array(
    array('password', 'encrypt', self::MODEL_INSERT, 'callback'),
    array('state','1',self::MODEL_INSERT),
    array('portrait', 'portrait', self::MODEL_INSERT, 'callback'),
    array('create_time', 'createTime', self::MODEL_INSERT, 'callback')
  );

  /* 给密码加密 */
  public function encrypt() {
    return md5(crypt(I('post.password/s'), 'zh'));
  }

  /* 创建时间 */
  public function createTime() {
    return time();
  }

  /* 上传Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다. */
  public function portrait() {
    if($_FILES['portrait']['name']) { // 如果上传的Thinkphp는 자동 확인 및 자동 완성_php 기술을 구현합니다.
      $upload = new \Think\Upload();// 实例化上传类
      $upload->maxSize  =   3145728 ;// 设置附件上传大小
      $upload->exts   =   array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
      $upload->rootPath =   './Uploads/portrait/'; // 设置附件上传根目录
      // 上传单个文件
      $info  =  $upload->uploadOne($_FILES['portrait']);
      if(!$info) {// 上传错误提示错误信息
        $this->error($upload->getError());
      }else{// 上传成功 获取上传文件信息
        $portraitPath = './Uploads/portrait/'.$info['savepath'].$info['savename'];
        $image = new \Think\Image();
        $image->open($portraitPath);
        // 生成一个居中裁剪为80*80的缩略图
        $image->thumb(150, 150,\Think\Image::IMAGE_THUMB_CENTER)->save($portraitPath);
        return $info['savepath'].$info['savename'];
      }
    }
  }
}

해당 데이터 테이블 구조:

컨트롤러에서 데이터베이스 감지 및 삽입:

/* 注册 */
public function register() {
  if(IS_POST) {
    $member = D('member');
    if($member->create()) {
      if($member->add()) {
        $this->success('注册成功!');
      } else {
        $this->error('注册失败!');
      }
    } else {
      exit($member->getError());
    }
  }
  $this->display();
}

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.