注册的表单提交与处理

由于要与数据库的user表进行关联才能添加,TP5内部已经做好了处理只需要新建application/index/model/User.php文件

写入代码如下:

<?php
namespace app\index\model;
use think\Model;
class User extends Model
{
   protected $pk = 'user_id';
}

由上一节可知注册提交的路径和方式为:

<form action="/public/index.php/index/regist/regist" method="post">

继续编辑application/index/controller/Regist.php

写一个regist方法:

<?php
//用户注册
public function regist(){
  //实例化User
  $user = new User;
  //接收前端表单提交的数据
  $user->user_name = input('post.UserName');
  $user->user_sex = input('post.UserSex');
  $user->user_tel = input('post.UserTel');
  $user->user_email = input('post.UserEmail');
  $user->user_address = input('post.UserAddress');
  $user->user_birth = input('post.UserBirth');
  $user->user_passwd = input('post.UserPasswd');
  $user->user_signature = input('post.UserSignature');
  $user->user_hobby = input('post.UserHobby');
  //进行规则验证
  $result = $this->validate(
    [
      'name' => $user->user_name,
      'email' => $user->user_email,
      'sex' => $user->user_sex,
      'tel' => $user->user_tel,
      'address' => $user->user_address,
      'birth' => $user->user_birth,
      'password' => $user->user_passwd,
    ],
    [
      'name' => 'require|max:10',
      'email' => 'email',
      'sex' => 'number|between:0,1',
      'tel' => 'require',
      'address' => 'require',
      'birth' => 'require',
      'password' => 'require',
    ]);
  if (true !== $result) {
    $this->error($result);
  }
  //写入数据库
  if ($user->save()) {
    return $this->success('注册成功');
  } else {
    return $this->success('注册失败');
  }
}

全部验证通过$result才会等于true,有一个错误就返回对应的string类型的错误信息

input('post.UserName')获取的数值根据(提交的方式).(表单的nama值的属性)

这样注册功能就完成了

效果展示如下:

gif5新文件 (11).gif

数据库展示如下:

微信图片_20180307134620.png

继续学习
||
<?php echo "注册功能实现";
提交重置代码
章节
笔记
提问
课件
反馈
捐赠
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
王文韬

王文韬

controller 里需要引入app\index\model\user 没提啊

3年前    添加回复 1

回复
睡不醒的王小胖

睡不醒的王小胖

能够进行验证,但是一点击注册就显示页面错误,求大神帮助

2年前    添加回复 0

回复
路口的黑衣人

路口的黑衣人

我卡在这里了,提示我“致命错误: Class 'app\index\controller\User' not found”

3年前    添加回复 0

回复
安静的黑白

安静的黑白

为什么我按照他的根本就不行?

3年前    添加回复 0

回复

大神求解

[最新 Martin Huang 的回答]这里的$pk定义了数据表相关联模型的主键

时间:2年前

大帅比

大帅比

<?php //用户注册 public function regist(){ //实例化User $user = new User; //接收前端表单提交的数据 $user->user_name = input('post.UserName'); $user->user_passwd = input('post.UserPasswd'); $user->user_signature = input('post.UserSignature'); $user->user_hobby = input('post.UserHobby'); //进行规则验证 $result = $this->validate( [ 'name' => $user->user_name, 'password' => $user->user_passwd, ], [ 'name' => 'require|max:10', 'password' => 'require', ]); if (true !== $result) { $this->error($result); } //写入数据库 if ($user->save()) { return $this->success('注册成功'); } else { return $this->success('注册失败'); } }

2年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~