thinkphp Model的使用

4.1 放在哪儿?
项目/模块/Model目录下
以本教程为例,Home模块的Model
/Home/Model/目录下

 

4.2 model类文件叫什么?
模型名: DemoModel.class.php

4.3 model类与表名的对应关系
一般model名称与表名table 相同
如DemoModel.class.php 则对应操作 Demo
注意: 虽然Model类首字母大写的,但惯例,表名一律小写.

  需要插入Demo表,不然会保错

  

数据库随便创建

 create table Demo(
  id  int,
  name varchar(10),
  age int,
  sex varchar(5)
);

 

4.4 继承谁?
namespace HomeModel
use ThinkModel

class DemoModel extends Model {
}

4.5 controller里如何实例化
new 模块名ModelModelName();
:
new HomeModelUserModel();
也可以通过快捷函数D('模型名'),:
D('User')

 

<?php
namespace HomeController;
use ThinkController;
class UserController extends Controller {

    public function ff(){
    //    $a = new HomeModelDemoModel();
        $a = D('Demo');//thinkphp 封装的方法(优先得到子类的方法)
    //    var_dump($a);
        $a->papa();
    }
}

注意:
上述实验,都会失败,因为还没有配置数据库信息.
失败后,请参考第6

区别
D(),M()函数都能得到Model的实例,
D函数是优先得到子类的Model实例
M函数是得到父类的Model实例,ThinkModel类的实例

 

原文地址:https://www.cnblogs.com/healy/p/6801956.html