> ## 在控制器中调用模型进行添加数据
### 1. 添加一条数据《save方法新增数据返回的是写入的记录数。》
```php
// 注意不要在同一个实例里面多次新增数据,如果实在需要,第二次开始必须使用下面的方式新增
$user->isUpdate(false)->save();
// 使用model助手函数可以快速实例化一个单例的模型对象,不需要特意引入模型类
$user = model('User');
// 1.如果为少量字段直接赋值
$user = new User;
$user->name = 'thinkphp';
$user->save();
// 2. 如果为多个字段支持传入数组
$user = new User;
$user->data([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$user->save();
// 还可以直接在实例化的时候传入(这种简单)
$user = new User([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$user->save();
// 3. 插入前过滤非数据表字段
user = new User($_POST);
$user->allowField(true)->save();
// 4. 限制指定字段可以插入
$user = new User($_POST);
$user->allowField(['name','email'])->save();
```
### 2. 添加多条数据《saveAll方法新增数据返回的是包含自增id的数据集。》
```
// saveAll方法会自动判断更新还是新增,当数据包含主键时会被认为更新,当不包括主键时被认为是新增
$user = new User;
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);
// 强制插入非更新,那么
$user = new User;
$list = [
['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'],
];
$user->saveAll($list, false);
```
### 3. 使用静态方法添加数据(create方法返回的是当前模型的对象实例。)
```php
$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
echo $user->name;
echo $user->email;
echo $user->id; // 获取自增ID
```
> ## 在模型中获取自增的主键id
```php
$user = new User;
$user->name = 'thinkphp';
$user->save();
// 获取自增ID
echo $user->id;
// 如果表中的字段不是id,而是user_id,那么
echo $user->user_id;
```
- 运行环境需求
- tp5目录结构
- 命令行生成代码
- 路由
- 请求
- 获取请求信息
- 超全局变量获取
- 更改请求变量的值
- 判断是否为某种请求类型
- 伪装表单请求类型
- HTTP头部信息
- 伪静态
- 向请求对象中注入自定义的属性和方法
- 简单的传参可以使用参数绑定
- 依赖注入(将对象注入方法作为参数)
- 将请求的数据进行缓存
- 控制器
- 一个控制器代码示例
- 空控制器
- 资源控制器
- 模型
- 一个模型代码示例
- 模型的四种调用方法
- 控制器中调用模型添加数据
- 控制器中调用模型更新数据
- 控制器中调用模型删除数据
- 控制器中调用模型查询数据
- 模型中使用聚合函数
- 获取器
- 修改器
- 自动写入时间戳
- 只读字段
- 软删除
- 自动类型转换
- 数据自动完成
- 查询范围
- 数组方式访问和转换为数组
- json序列化
- 模型的事件
- 关联模型
- 一对一关联
- 一对多关联
- 远程一对多(跨表关联)
- 多对多关联
- 多态关联
- 关联预载入N+1次查询变2次
- 延迟预载入
- 关联统计
- 视图与模板
- 模板引擎配置
- 分配数据到模板
- 输出替换
- 模板中输出变量
- 模板中输出系统变量(配置常量超全局)
- 模板中输出请求信息
- 模板中使用php函数
- 输出到模板中的变量指定默认值
- 模板中进行运算
- 原样输出代码不解析
- 模版中注释
- 模板布局与继承
- 文件包含
- 内置标签
- 循环输出标签
- 比较标签
- 条件判断标签
- 引入资源文件(js-css)
- 使用原生php
- 在模板中定义变量和常量
- 助手函数
- 常用功能
- 表单验证
- 验证器的定义
- 自定义验证规则
- 速查表
- 系统默认根命名空间
- 系统路径常量
- 请求变量
- URL请求和信息方法