ThinkPHP中的模型二,ThinkPHP模型二_PHP教程
ThinkPHP中的模型二,ThinkPHP模型二
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文件夹下并更改路径
推荐阅读
-
php exec()某个shell结果出错,原因是php中的 grep只能处理文本流,二进制流不行_PHP教程
-
ThinkPHP中的系统常量和预定义常量集合_PHP教程
-
ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创,thinkphprun_PHP教程
-
ThinkPHP中的视图二,ThinkPHP视图二
-
php中cookie实现二级域名可访问操作的方法,cookie二级域名_PHP教程
-
第二节--PHP5 的对象模型
-
php框架 - CodeIgniter的模型如何对应特定的数据表,类似thinkphp的real_tableName?
-
thinkphp 的 Action 控制器中的系统常量总结_PHP教程
-
如何让thinkphp在模型中自动完成session赋值小教程,thinkphpsession_PHP教程
-
关于PHP中数组模型的一点猜想(by misko lee)_PHP教程