ThinkPHP中的模型
ThinkPHP中的模型
1、什么是模型(Model)
模型表示企业数据和业务规则,实际项目开发中,主要实现与数据库进行操作。
2、模型的定义规则
模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,然后加上模型类的关键词Model,再加上类文件后缀.class.php
案例:实现移动办公自动化系统的组织结构功能
① 设计数据库db_think
② 设计数据表结构(tk_dept)
id 编号 int 自动增长 主键
name 部门名称 varchar(40)
pid 父级 int 字段值来自上级id,根节点0
sort 排序 int
remark 备注信息 varchar(255)
③ 使用SQL语句创建数据表

④ 创建一个Dept控制器

⑤ 导入add.html模板到./Application/Admin/View/Dept文件夹下
⑥ 更改add.html页面中的images/css/js路径信息
⑦ 更改办公系统左侧导航链接,要用到的知识点:
U方法
主要功能:用于生成导航链接,如/index.php/Admin/Dept/add,使用方法如下:

在实际项目开发中我们通常使用第三种方式,U('模块/控制器/操作方法')

3、ThinkPHP中的模型定义步骤
路径:./Application/模块/Model(模型)
定义规则:DeptModel.class.php
编写内容三步走:

4、模型的实例化
实例化模型必须有一个前提,设置配置文件链接数据库,否则会出现以下错误:

在./Application/Common/Conf/config.php文件中,配置参数如下:

还要特别注意,设置完配置文件后,还需要在php.ini文件中,开启pdo_mysql.dll扩展,因为在ThinkPHP3.2版本后,使用PDO进行数据库操作。

设置后,记得重启Apache服务器。
ThinkPHP中的模型有两种实例化方式:
1)实例化自定义模型
① 实例化自定义模型

调试结果:

② 快速实例化自定义模型D方法(重点掌握)

调试结果:

2)实例化系统模型
① 实例化系统类模型

调试结果:

② 快速实例化系统类模型M方法(重点掌握)

调试结果:

答疑:D方法与M方法都可以实例化模型,那么两者之间有何区别呢?
答:D方法与M方法都用于实例化模型对象,但是D方法实例化的是自定义模型对象,而M方法是实例化系统类对象。相比而言,自定义模型对象拥有更多的功能。
5、模型中的CURD操作
CURD:增删改查
C增加操作:

D删除操作:

U更新操作:

R查询操作

ThinkPHP中的模型的更多相关文章
- ThinkPHP中的模型二
ThinkPHP中的模型 1.为什么要创建数据对象 案例:使用ThinkPHP完成部门管理 ① 设计数据库 ② 创建Dept控制器 路径:./Application/Admin/Controller创 ...
- ThinkPHP中的模型命名
当我们创建一个UserModel类的时候,其实已经遵循了系统的约定.ThinkPHP要求数据库的表名和模型类的命名遵循一定的规范,首先数据库的表名和字段全部采用小写形式,模型类的命名规则是除去表前缀的 ...
- ThinkPHP中视图模型详解.
很多TP的新手对于模型中的视图模型不甚了解,官方虽然有详细手册,但是对于初学者来说还是比较难以理解! 先简单说一下视图模型所能实现的功能,基本就是主表与副表之间各个字段的关联问题,实现多表关联查询,相 ...
- thinkphp中如何实现无限级分类?
thinkphp中如何实现无限级分类? 一.总结 1.数据表设计+递归算法 二.php实现无限级分类实例总结 1.数据库数据如下: 2.任务需求:给一个id,求自己和所有父亲. 3.实现代码如下:th ...
- thinkphp 中模型究竟是什么用?
thinkphp 中模型究竟是什么用? 问题 似乎所有的操作都能在控制器中就能完成,模型除了几种验证之外,究竟是干什么用的,这个问题一直没理解透 解答 解答一 要明白这个问题,必须了解 MVC 历史. ...
- [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别
1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...
- ThinkPHP 中M方法和D方法详解----转载
转载的地址,http://blog.163.com/litianyichuanqi@126/blog/static/115979441201223043452383/ 自己学到这里的时候,不能清除的分 ...
- ThinkPHP 中M方法和D方法的具体区别(转)
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- ThinkPHP中实例化对象M()和D()的区别,select和find的区别
原文:ThinkPHP中实例化对象M()和D()的区别,select和find的区别 1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在 ...
随机推荐
- 0c-38-ARC快速入门
2.ARC快速使用 int main(){ Student *s = [[Student alloc] init]; return 0; } 只需要写一行代码,编译器会在合适的位置释放学生对象,程序员 ...
- ios中@class和 #import,两种方式的讨论
转自:http://blog.sina.com.cn/s/blog_a843a8850101b6a7.html 很多刚开始学习iOS开发的同学可能在看别人的代码的时候会发现有部分#import操作写在 ...
- 计划任务命令crontab、at
一.为计划任务提供支持 开始为系统建立计划任务之前,需要为系统添加相关设置,以确保计划任务能够正确运行.计划任务需要的支持主要包括两个方面:正确运行系统服务.准确的系统时间. 1.正确运行系统服务 为 ...
- 如何在HTML5 图片预览
HTML5的 File API允许浏览器访问本地文件系统,借助它我们可以实现以前无法实现的本地图片预览功能. 先介绍下该API实现了那些接口: 1.Blob接口,表示原始的二进制数据,通过它可以访问到 ...
- 学了这四招,你在Linux上观看Netflix视频不发愁
导读 一份崭新的Linux发行版已经安装到你的电脑上,你完全准备好使用免费开源办公软件处理长时间的工作.但是你可能会问自己:"难道除了工作,就没有乐趣可言?我就是想观看Netflix视频!& ...
- PHP header 的几种用法
跳转页面 header('Location:'.$url); //Location和":"之间无空格. 声明content-type header('content-type:te ...
- WPF 之 实现TextBox输入文字后自动弹出数据(类似百度的输入框)
1.添加一个数据实体类 AutoCompleteEntry,如下: using System; using System.Collections.Generic; using System.Linq; ...
- Data Structure 之 二叉树
在计算机科学中,二叉树是每个节点最多有两个子树的树结构.通常子树被称作“左子树”(left subtree)和“右子树”(right subtree).二叉树常被用于实现二叉查找树和二叉堆 ...
- jquery.blockUI.2.31.js 弹出层项目介绍
{insert_scripts files='user.js'} <style type="text/css"> #float_login{border:1px sol ...
- 使用app loader上传iOS应用
正如上篇文章中提到的,因为一些原因我尝试通过app loader打包上传应用到appStore 其实这个使用还是挺简单 的 首先要知道怎么打开loader 打开方式有两种 一种是直接打开loade ...