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 Home\Model
use \Think\Model
class DemoModel extends Model { }
4.5 在controller里如何实例化
new \模块名\Model\ModelName();
例:
new \Home\Model\UserModel();
也可以通过快捷函数D('模型名'),例:
D('User')
<?php namespace Home\Controller; use Think\Controller; class UserController extends Controller { public function ff(){ // $a = new \Home\Model\DemoModel(); $a = D('Demo');//thinkphp 封装的方法(优先得到子类的方法) // var_dump($a); $a->papa(); } }
注意:
上述实验,都会失败,因为还没有配置数据库信息.
失败后,请参考第6章
区别
D(),M()函数都能得到Model的实例,
但D函数是优先得到子类的Model实例
而M函数是得到父类的Model实例,即\Think\Model类的实例