1.【强制】超过2条数据库增删改操作的,必须使用事务,catch 异常后,一定要注意手动回滚事务,避免脏数据
~~~
// 启动事务
Db::startTrans();
try {
$info_result = Db::table('think_user_info')->where('uid',1)->update(['nickname'=>'姓名']);
$delete_result = Db::table('think_user')->where('id',1)->update(['name'=>'姓名']);
if (!$find_result || !$delete_result){
throw new \think\Exception('语句执行错误', 100006);
}
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
$msg = $e->getMessage();
$this->error($msg);
}
$this->success('执行成功!');
~~~
2.【强制】Thinkphp使用查询语句时必须使用field指定要查询的字段,不要怕麻烦
3.【强制】接口输出数据禁止空值或者null,请判断数据是否为空,如果为空值,请返回一个空数组
正例
```
{"code":1,"msg":"请求成功","data":[]}
```
反例
```
{"code":1,"msg":"请求成功","data":null}
{"code":1,"msg":"请求成功","data":""}
```
4.【强制】Thinkphp增加或修改数据时,请使用自带的验证器验证一下数据的准确性,禁止不做任何验证就保存数据,具体请参考 [Thinkphp验证](https://www.kancloud.cn/manual/thinkphp5/129319)
5.【推荐】控制器尽量制作业务逻辑处理,数据处理全部放在模型中,例如数据库增删改,尽量不要在控制器中进行,而是调用模型来处理;
6.【推荐】安装扩展或者依赖请尽量使用composer安装;