ThinkPHP中的模型

1、为什么要创建数据对象

案例:使用ThinkPHP完成部门管理

① 设计数据库

② 创建Dept控制器

路径:./Application/Admin/Controller创建控制器

规则:DeptController.class.php

编程程序三步走

③ 复制add.html模板到./Application/Admin/View/Dept文件夹,更改模板路径

④ 更改View/Index/index.html左侧导航

⑤ 获取添加功能的上级部门(使用模型)

路径:./Application/Admin/Model/DeptModel.class.php

编程模型代码三步走:

在控制器中实例化模型,完成载入上级部门功能。

1)实例化模型

2)调用select方法

3)分配变量到模板文件

在模板文件add.html中,显示上级部门列表

⑥ 实现数据的添加功能addOk

在模板页面中,编程Javascript代码,提交表单数据

定义表单提交页面

在控制器中定义addOk方法实现添加操作

要用到的知识点:I方法,主要功能:接收表单数据,安全性更高

2、数据对象的创建方式

⑦ 引入create方法创建数据对象

以上addOk虽然可以正常添加数据到数据库,但是对于表单的接收和处理过于冗余,我们在ThinkPHP中可以使用create方法对其进行简化操作。

3、create方法分析

使用Zend软件追踪create方法,如下图所示:

当数据处理完成后,会将接收的表单数据赋值给当前对象

问题:为什么add方法不添加任何参数也可以添加成功呢?

答:继续分析add方法,代码如下:

如果add方法中没有任何参数,系统会自动读取$this->data这个属性,又由于刚才create方法在处理完成后,会将表单数据存放于$this->data属性中,所以系统会自动将表单数据添加到数据表中。

4、完成部门列表功能

① 在控制器中定义index方法,如下图所示:

② 复制index.html模板到./Application/Admin/View/Dept文件夹下并更改路径

最新文章

  1. yii框架安装心得
  2. BZOJ 1031: [JSOI2007]字符加密Cipher 后缀数组
  3. 解决SQL server 2014 修改表中的字段,无法保存的问题。
  4. LightOJ 1112 Curious Robin Hood (单点更新+区间求和)
  5. notepad++汉字突然横过来了
  6. Populating Next Right Pointers in Each Node II 解答
  7. nginx配置ssl加密(单双向认证、部分https)
  8. UVALive 7141 BombX
  9. 蓝桥杯比赛javaB组练习《饮料换购》
  10. Core Animation 文档翻译—附录C(KVC扩展)
  11. 洛谷P3480 KAM-Pebbles
  12. java面试题复习(三)
  13. maple推导剑桥模型塑性势函数
  14. 复制id_rsa命令
  15. Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
  16. div中 li宽度不固定 ie6和ie7不兼容不自动换行
  17. thinkphp save() 跟新失败
  18. python所有基础
  19. office系列调节背景主题
  20. Nodejs 实现 WebSocket 太容易了吧!!

热门文章

  1. Android Task 与 Back Stack
  2. CSS 居中大全【转】
  3. [转]Oracle快速入门
  4. 数据连接命令join
  5. Golang学习 - unicode/utf8 包
  6. PHP header 的几种用法
  7. js(jQuery)获取时间的方法及常用时间类搜集
  8. 使用block来解决实现switch解决字符串
  9. mount: unknown filesystem type 'LVM2_member'解决方案
  10. 1172 Hankson 的趣味题[数论]