thinkphp 实战记录1
模型 Model 一般内置的就够了。约定模型命名规则是去除表前缀的数据表名称使用首字母大写命名,然后加上Model
如果表前缀是 think_
数据表名称是 think_user 不要前缀就是 user 加上Model以后就是UserModel 所以对应模型名称为UserModel
如果要自定义模型 继承Think/Model就可以
模型的实例化有四种方式
1 直接用new
比如要连接 think_user 。可以使用
$user=new Model('User');
Model构造方法有三个 参数(一个是去除表前缀的数据表名称 ,表前缀,连接配置)
还可以跨项目 或者跨模块调用
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 查询记录的连贯操作。
代码简洁 明了
CURD部分可以手动多练习。
基本需求已经内置了。原始的sql需要用 $model=M()
通过query execute执行
5.7 thinkphp提供数据验证 在create创建数据对象的时候验证。
5.8 自动完成用来自动处理和过滤 就是在create的时候
比如 调用Create的时候就采用md5函数把密码加密了,插入的时候增加了create_at。修改的时候增加了updated_at项
5.9 ViewModel通常用来解决 HAS_ONE BELONGS_TO类型查询
一个表示作者 信息 id是key
一个表 表示 文章内容 id用来标记作者
视图来定义的话。
这样两张表就组合了一个视图。
5.10 关联视图