看fastadmin源码中crud基类中的 增删改 使用了事务加try-catch提交或回滚, webman-admin的crud基类的 增删改 好像直接就自动提交了, 有什么区别吗? 基础一般请赐教^^
fastadmin 的新增
$result = false;
Db::startTrans();
try {
//是否采用模型验证
if ($this->modelValidate) {
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
$this->model->validateFailException()->validate($validate);
}
$result = $this->model->allowField(true)->save($params);
Db::commit();
} catch (ValidateException|PDOException|Exception $e) {
Db::rollback();
$this->error($e->getMessage());
}
if ($result === false) {
$this->error(__('No rows were inserted'));
}
$this->success();
webman-admin 的新增
$primary_key = $this->model->getKeyName();
$model_class = get_class($this->model);
$model = new $model_class;
foreach ($data as $key => $val) {
$model->{$key} = $val;
}
$model->save();
return $primary_key ? $model->$primary_key : null;
操作单个表,你加事务干啥??事务都是都个表才有需要,你看admin都是单个表,所以不需要事务
所以, 如果是多表操作的话在重写crud基类方法的时候还是使用事务的是吧
这个没标准,看业务需求
嗯呐,谢谢啦