1.添加数据失败原因: 没有开启事务
Db::startTrans();
2.一直抛出异常,且无法this->success()写在了事务里面
3.如何自动插入时间, 模型中设置:
// 自动写入时间戳字段
protected $autoWriteTimestamp = true;
// 创建时间字段
protected $createTime = 'created_at';
// 更新时间字段
protected $updateTime = 'updated_at';
4.完整添加数据案例
use think\facade\Db;
try {
// 开启事务
Db::startTrans();
// 添加日志
$log = new \app\admin\model\TestModel;
$log->uid = $this->auth->getAdmin()->id;
$log->content = $content;
$res = $log->save();
if (! $res) {
throw new \Exception("保存失败");
}
// 提交事务
Db::commit();
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
$this->error("错误: ".$e->getMessage());
}
$this->success('上传成功'); //不要写在事务里面