【原创ThinkPHP6学习笔记】数据库校验:Model与Validate

前言

ThinkPHP支持传统的MVC(Model-View-Controller)模式,这个M就是Model,主要是进行数据库处理,增删改查由Model层处理,在controller层只需调用,然后把data数据、传过去即可!

【本篇文章基于原创,写得不好欢迎评论斧正!严禁转载!】

概念理解

比如

①你要查询张三的年龄、身高、成绩等等,可以直接 Db::name(‘table’)->where(‘name‘,’‘张三’)->find();这种是基于简单查询,如果数据库有500个人,如何进行批量查询呢?

②在实际开发中,会有注册、登录这个步骤,用户在前台填写用户名、邮箱、密码等基本信息,然后写入数据库,这个时候就不能直接写例子一的SQL语句了,不符合实际开发要求。

以上举两个例子,先了解下什么是Model?它是干什么的?

简单说下流程:

前台(view层)提供需要查询哪些人,他们的ID是什么,然后POST提交给controller层,在controller层调用Model层,把用户ID传给Model(后期商户平台可以调用Model查询用户,超级管理器可以在后台调用Model查询,相当于一个Model让多方使用)

接下来说下什么是validate,比如用户在前台注册,用户名输入一个1,这个时候是肯定不行的,因为长度太短了,容易造成重复,view层填写完,POST传值给controller层,c层调用validate,看下值是否符合标准,比如validate设置了用户名最短为6为英文数组组合,如果传过来的值不符合要求,则为validate校验不通过,不允许注册。

代码实现

使用Model

一般需要用到增删改查,可以用model提到代码复用率,比如user,注册用户、修改用户、删除用户;再比如controller层只处理增加,就用不到model了,直接用tp6的控制层sql操作。这里以User举例:

model层代码:

<?php
namespace app\index\model;
use think\Model;
class Users extends Model
{
    public function UserAdd($data){
        $sql=Users::create($data);
        return $sql;

    }
    public function find($field,$val){
        $res=Users::where($field,$val)->select();
        return $res;
    }
    //更新user表某个字段
    public function getUpdate($newdata){
        $update = Users::update($newdata);
        return $update;
    }

}

注意下这里的UserAdd、find、getUpdate,这里是我们自定义的方法,可以直接在控制器层调用,只需要传入操作得数据即可,

public function register() {
		if (Request()->isPost()) {//判断是否为post请求
			$data = Request::param();//接收post数据
			$db = new Users();//实例化model,类似于java
			$res = $db->UserAdd($data);//调用上面的model层中UserAdd方法,把接收的post数据传过去即可
	}

然后我们就可以判断$res这个变量,如果存在,即为插入数据库成功,否则为失败

这里有个小知识,model的起名,是和数据库的名称对应的,比如你的model名称为 User.php,在你的数据库中也要有user数据表,前缀可以忽略

© 版权声明
THE END
写文章不易,请作者喝瓶冰红茶吧!
点赞8
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称代码图片

    暂无评论内容