当前位置: 首页 > news >正文

ThinkPHP模型操作上

ThinkPHP模型操作上

  • 前言
  • 模型
      • 一、创建模型
      • 二、模型操作
  • 总结


前言

在mvc架构中,模型的解释是写逻辑代码的地方,其实还可以这样理解,就是一串操作写在一个模型类中,就是你要完成某一项功能,将这个功能的代码写在一个model中,然后使用这个model类就可以了


模型

使用模型前的准备

  • 添加数据表如下所示:
CREATE TABLE `shop_admin` (`uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',`account` varchar(50) NOT NULL COMMENT '账户',`password` char(32) NOT NULL COMMENT '密码',`name` varchar(50) NOT NULL COMMENT '姓名',`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1开启 2关闭',`add_time` int(10) unsigned NOT NULL COMMENT '添加时间',PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员';INSERT INTO `shop_admin` VALUES (1, 'ouyangke', 'e10adc3949ba59abbe56e057f20f883e', 'asd', 1, 1576080000);
DROP TABLE IF EXISTS `shop_cat`;
CREATE TABLE `shop_cat` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',`name` varchar(50) NOT NULL COMMENT '分类名',`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1开启 2关闭',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='分类表';INSERT INTO `shop_cat` VALUES (1, '女装', 1);
INSERT INTO `shop_cat` VALUES (2, '男装', 1);
INSERT INTO `shop_cat` VALUES (3, '孕产', 1);
INSERT INTO `shop_cat` VALUES (4, '童装', 1);
INSERT INTO `shop_cat` VALUES (5, '电视', 1);
INSERT INTO `shop_cat` VALUES (6, '手机', 1);
INSERT INTO `shop_cat` VALUES (7, '电脑', 1);
CREATE TABLE `shop_goods` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ' 商品ID',`cat` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '分类ID',`title` varchar(200) NOT NULL COMMENT '商品标题',`price` double(10,2) unsigned NOT NULL COMMENT '价格',`discount` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '折扣',`stock` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '库存',`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态 1开启 2关闭 3删除',`add_time` int(10) unsigned NOT NULL COMMENT '添加时间',PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COMMENT='商品表';INSERT INTO `shop_goods` VALUES (1, 1, '云朵般轻盈的仙女裙 高级钉珠收腰长裙 气质无袖连衣裙', 279.99, 0, 1100, 1, 1576080000);
INSERT INTO `shop_goods` VALUES (2, 1, '高冷御姐风灯芯绒a字连衣裙女秋冬2019年新款收腰显瘦复古裙子', 255.90, 0, 100, 1, 1576080000);
  • 表前缀设置:config/database.php 文件里 prefix
    在这里插入图片描述

  • 请确保你已经在数据库配置文件中配置了数据库连接信息

  • 模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写

  • 模型自动对应的数据表名称都是遵循小写+下划线规范,如果你的表名有大写的情况,必须通过设置模型的table属性。

  • 在模型类中添加use think\model;

TP6的语法,都是使用一些封装好的类

一、创建模型

  1. 在app目录下面创建model目录,如何在model目录下面创建三个文件夹
  • Cat.php
<?php
namespace app\model;use think\model;class Cat extends model
{}
  • Goods.php
<?php
namespace app\model;use think\model;class Goods extends model
{
}
  • Admin.php
<?php
namespace app\model;use think\model;class Admin extends model
{
}

二、模型操作

在模型中除了可以调用数据库类的方法之外(换句话说,数据库的所有查询构造器方法模型中都可以支持),可以定义自己的方法,所以也可以把模型看成是数据库的增强版

  • 模型文件里的自定义方法,不要和 thinkphp 方法一样名称

  • 模型里的 Goods:: 也可以用 static:: 关键词

  • 链式操作,都可以在模型里使用

  • 在模型中使用数据库操作,在controler中调用

  • app/model/Cat.php

<?php
namespace app\model;use think\model;class Cat extends model
{public function findArr()   {$result = Cat::select();return $result;}
}
  • app/controller/index.php
<?phpnamespace app\controller;use think\facade\View;
use think\facade\Db;
use app\model\Cat;class Index
{public function index(){ $menu = new Cat();echo $menu->findArr();}
}

模型类名已经指明了数据库,所以不用绑定数据库操作了


总结

模型就是把一个功能实现的所有代码写在一个模型类中

http://www.lryc.cn/news/62674.html

相关文章:

  • 053:cesium显示网格切片标识,展示X、Y、Level 坐标
  • FPGA基于XDMA实现PCIE X8视频采集HDMI输出 提供工程源码和QT上位机程序和技术支持
  • 简单的redis master slave 配置
  • MySQL高级第十七篇:数据库主从复制原理及保证数据一致性
  • PM不想做项目管理了,还能干点啥?
  • Java面试被问Spring哑口无言?100道Spring面试考点解析
  • 2023年制造业产品经理NPDP认证报名找弘博创新
  • Linux基础命令和基础知识总结
  • Vue组件-非单文本组件
  • 停车场管理系统的设计与实现_kaic
  • seleniumUI自动化登录失败案例重新尝试WhileTrue
  • 前端开发之vue动态路由实现方案
  • JAVA接口的基本测试------JAVA入门基础教程
  • SLAM论文速递:SLAM—— 面向动态环境的多用途SLAM框架—4.25(1)
  • Dubbo 简易环境搭建以及使用(2)
  • 免费无需魔法会语音聊天的ChatGPT
  • springboot 参数统一处理
  • 成就更强大的自己
  • android 富文本编辑器有哪些
  • flex布局属性详解
  • 上传了ipa但iTunes Connect没有构建版本问题
  • 记录一次armbian系统搭建路由功能的失败过程
  • OpenGL与Metal API的Point Sprite
  • 从0搭建Vue3组件库(七):使用 gulp 打包组件库并实现按需加载
  • Python入门教程+项目实战-11.4节: 元组与列表的区别
  • 如何做好采购计划和库存管理?
  • 客户管理系统的作用有哪些?
  • Sqlmap手册—史上最全
  • 《花雕学AI》13:早出对策,积极应对ChatGPT带来的一系列风险和挑战
  • windows开机启动软件、执行脚本,免登录账户