thinkphp 实战记录1

模型 Model 一般内置的就够了。约定模型命名规则是去除表前缀的数据表名称使用首字母大写命名,然后加上Model

如果表前缀是 think_

数据表名称是 think_user 不要前缀就是 user 加上Model以后就是UserModel 所以对应模型名称为UserModel

如果要自定义模型 继承Think/Model就可以

模型的实例化有四种方式

1 直接用new

比如要连接 think_user 。可以使用 

$user=new Model('User');

Model构造方法有三个 参数(一个是去除表前缀的数据表名称 ,表前缀,连接配置)

还可以跨项目 或者跨模块调用

thinkphp 实战记录1

 

2 M函数 

3 D函数

M和D最大的区别是D会自动检测模型类。如果存在指定的模型类。实例化该类模型否则实例化Model类

M函数只会实例化Model类

4 只需要执行sql 不需要其他操作 可以实例化一个空模型类

$m =new Model();//等同于 $m=M()

$data=$m->query()

 

比较重要的一个函数是 fetchSql() 这个是获取sql语句的。可以用来调试

 $m = new UserModel();
$st=$m->relation('extra')->fetchSql(true)->find();
echo $st; 这里的st就是语句打印
#$data = $m->relation('extra')->find();

 

5.4 查询记录的连贯操作。

thinkphp 实战记录1

代码简洁 明了

thinkphp 实战记录1

CURD部分可以手动多练习。

基本需求已经内置了。原始的sql需要用 $model=M()

通过query execute执行

5.7 thinkphp提供数据验证 在create创建数据对象的时候验证。

thinkphp 实战记录1

 

 

 

thinkphp 实战记录1

 

5.8 自动完成用来自动处理和过滤 就是在create的时候

thinkphp 实战记录1

比如 调用Create的时候就采用md5函数把密码加密了,插入的时候增加了create_at。修改的时候增加了updated_at项

 

5.9 ViewModel通常用来解决 HAS_ONE BELONGS_TO类型查询

thinkphp 实战记录1

一个表示作者 信息 id是key

一个表 表示 文章内容  id用来标记作者

视图来定义的话。

thinkphp 实战记录1

这样两张表就组合了一个视图。

5.10 关联视图

thinkphp 实战记录1