最近学习了php框架thinkphp,回头总结了些学习心得知识,希望对大家有帮助

1、模型的概念:

模型(Model)是 ThinkPHP 中一个很重要的概念,粗略的理解模型就是与数据库交互信息进行curd操作的过程,与之有关的还包括模型的定义与实例化。

2、模型的实例化:

1)、实例化基础模型 (无需正式的M层存在,是thinkphp提供好的,模型的基类,实现了基本的CURD)

1、$对象 = new  Model("去掉前缀的表名")

快捷创建:M

2、$对象 = M("去掉前缀的表名")

2)、实例化自定义模型 (实际通过自己在项目目录/Lib/model/)

(1)模型的命名和命名控制器的命名相似  “表名”+model.class.php

(2)创建模型类时必须继承Model这个基类

(3)模型类被本身可以不定义方法或者属性

(4)创建模型类对象

1、$对象名 = new  XXXModel();

快捷创建:D   用D创建的好处是,不会每次都创建,会自动的判断如果有该类的对象,那么就不会在创建,会返回有的对象

2、$对象名 = D("XXX");

(5) 实例化多个模型(实例化一个自定义模型的时候同时附带着实例化另一个模型)

$对象名 = new  XXXModel("其它模型的名称(‘User’)");

注意:此时查询的数据库数据是来自User表的数据

$对象名 = M("XXXModel:USer");

(6) 实例化空模型(在实例化的时候不知道实例化那个模型,直接实例化一个空的模型)

$对象名 =  new Model();

该对象可以使用原始的sql语句    $对象名->query(“原生sql语句”);

3、数据库操作与查询(区间查询,统计查询,定位查询,原生查询)

1)

连贯操作中,如where group   order   limit select  等中select一定要在最后一个出现

2)

1、select()返回值二维数组   等于findAll()

建议使用select()

2、field查询指定字段(连贯方法之一)

field("username","password")->select();

3、find()  只能查询一条记录   默认是根据主键进行查询,也有数组条件,但是注意的是该数组条件是连贯操作的表达式:

如果条件是id的话:可以直接写条件,默认就是id为条件:find(id=2)

$conditon["order"] ="id  desc";

$conditon["where"] ="username = 'wjc'";

4、getByUsername("admin")

5、getfield(字段1,字段2,字段3,spe分隔符)

用法:

getField($field,$sepa=null)

参数:

field(必须):要获取的字段字符串(多个用逗号分隔)

sepa(可选):字段数据间隔符号,如果是 NULL返回数组为数组。默认为null。

注:如果field是多个字段,返回数组。数组的索引是第一个字段的值,sepa为null则返回二维数组。

区间查询:

$condition["id"]=array(array("gt",12),array("lt",15),"or");

or是两个查询的关联条件,默认不写为and

$arr= $user ->where($condition)->select();

统计查询:

"统计用户名的个数:". $user->count("username")."<br>";

"统计最大的id:".$user->max("id")."<br>";

"统计最小的id:".$user->min("id")."<br>";

"统计id的和:".$user->sum("id")."<br>";

"统计id的平均值:".$user->avg("id")."<br>";

定位查询:

这些查询需要高级模型的支持:AdvModel

自定义高级模型:class UserModel  extends AdvModel()

自动切换为高级模型:switchModel(‘Adv’)->first()

dump($user->first());

dump($user->last());

dump($user->getN(index));1,2,3,4,5,6

原生查询:

query() 方法是用于 SQL 查询操作,和select()方法一样返回符合查询条件的数据集。

execute()方法用于更新和写入数据的 SQL 操作(注:非查询操作,无返回数据集),返回影响的记录数。

thinkphp3.2之模型(M层)的更多相关文章

  1. Django基础之模型(models)层(上)

    目录 Django基础之模型(models)层 单表查询 必知必会13条 神奇的双下划线查询 多表查询 外键的字段的增删改查 表与表之间的关联查询 基于双下划线的跨表查询(连表查询) 补充知识 Dja ...

  2. OSI模型——传输层

    OSI模型——传输层 运输层 运输层概述 运输层提供应用层端到端通信服务,通俗的讲,两个主机通讯,也就是应用层上的进程之间的通信,也就是转换为进程和进程之间的通信了,我们之前学到网络层,IP协议能将分 ...

  3. OSI模型七层模型结构

    OSI模型,即开放式通信系统互联参考模型(Open System Interconnection,OSI/RM,Open Systems Interconnection Reference Model ...

  4. 学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

    一.元素的块级与行级特性 在CSS属性display控制元素是否及如何显示的特性,常用的值有none.inline.block.inline-block,在CSS3中还有一些新的特性状态,在这里不做讨 ...

  5. Laravel5.1 模型 --远层一对多关系

    远层一对多我们可以通过一个例子来充分的了解它: 每一篇文章都肯定有并且只有一个发布者 发布者可以有多篇文章,这是一个一对多的关系.一个发布者可以来自于一个国家 但是一个国家可以有多个发布者,这又是一个 ...

  6. 三角形的实现和盒模型、层模型、浮动模型、定位、权重、margin问题

    相邻的border会平分所占的区域,出现一个斜线, .my_triangle{ width: 10px; height: 10px; background-color: blue; border-wi ...

  7. Java开发架构篇:DDD模型领域层决策规则树服务设计

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在上一章节介绍了领域驱动设计的基本概念以及按照领域驱动设计的思想进行代码分层,但是仅 ...

  8. OSI模型各层详解

    1. OSI概述 1.1 模拟器说明 1.1.1 模拟器的作用 搭建实验环境进行测试. 1.1.2 模拟器的类型 PT:一般是学校中使用,命令不完整,且不能抓包 GNS3:思科(CCNA,CCNP), ...

  9. ThinkPHP3创建Model模型--对表的操作

    创建Model模型 把"Home/Model"文件夹剪切到Application文件夹下,让Home和Admin共同使用. 第一种实例化模型的方法 第二种实例化模型的方法 第三种实 ...

随机推荐

  1. 关于HTML的使用。

    一丶标签问题 对于初学者来说,无疑用得最多的标签就是div和span了,当然就算只用这2个标签也能写出一个好看的页面,但是W3C为什么会给我们这么多标签来选择呢? 从浏览器的渲染来讲,标签的语义话,更 ...

  2. asp.net mvc4 easyui datagrid 增删改查分页 导出 先上传后导入 NPOI批量导入 导出EXCEL

    效果图 数据库代码 create database CardManage use CardManage create table CardManage ( ID ,) primary key, use ...

  3. ADT 连接手机运行android应用程序时报错

    The connection to adb is down, and a severe error has occured.    You must restart adb and Eclipse.  ...

  4. LeetCode_Rotate Image

    You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...

  5. 在win7与XP系统下 C#缺省路径不同

    当我们加载文件时,若只输入文件名,在WIN7下默认是主程序所在文件夹路径 在XP下是上次本程序游览的有效路径 所以以后程序中尽量避免只传文件名

  6. WINDOWS 2012忘记密码之后。。。

    要使用windows server 2012安装DVD,选择光盘引导进入 进入修复系统 选择疑难解答,进入界面 选择命令提示符 切换目录至系统目录 执行move命令 执行 copy命令 重新启动系统, ...

  7. Powershell环境变量

    Powershell环境变量 9 12月, 2011  在 Powershell tagged 变量by Mooser Lee 本文索引 [隐藏] 1读取特殊的环境变量 2查找环境变量 3创建新的环境 ...

  8. 记忆2--记忆的"记"和"忆"

    有时候也会想,我们是如何记住东西的?是如何想起来的?在写这篇文章的时候,想起初中的时候(应当是初二),语文老师检查唐诗背诵,在下面觉得已经能背起来的时候,去向老师背诵的时候,忘记了开头,干急想不起来, ...

  9. 使用Windows USB-DVD制作U盘启动安装系统盘

    第一步:到如下所示的地址下载所需要的*.iso系统镜像文件. http://msdn.itellyou.cn/ 第二步:下载Windows USB-DVD工具 https://www.microsof ...

  10. poj 3262 Protecting the Flowers 贪心

    题意:给定n个奶牛,FJ把奶牛i从其位置送回牛棚并回到草坪要花费2*t[i]时间,同时留在草地上的奶牛j每分钟会消耗d[j]个草 求把所有奶牛送回牛棚内,所消耗草的最小值 思路:贪心,假设奶牛a和奶牛 ...