tp开启事务添加数据成功后,为什么还会跑进异常中,在代码执行最后就是没执行$this->success(),而是跑进了异常中,困扰了我都快不正常了,各种方法都试过,就是找不出问题
public function add()
{
if($this->request->isPost()) {
$params = $this->request->post("row/a");
// 接收添加的商品数据,json字符串转成数组
$productList = json_decode($params['product'],true);
// 生成订单号
$code = build_code('SU'); // 订单前缀可以自定义
Db::startTrans();
try {
// 封装入库数据
$StorageData = [
'code' => $code,
'supplierid' => $params['supplierid'],
'type' => $params['type'],
'amount' => $params['total'],
'remark' => $params['remark'],
'status' => 0,
];
$StorageStatus = $this->model->validate('common/Depot/Storage')->save($StorageData);
if($StorageStatus === false)
{
$this->error($this->model->getError());
exit;
}
// 处理入库商品数据
// 存放封装好的商品数据
$StorageProductData = [];
foreach($productList as $item) {
$StorageProductData[] = [
// 'storageid' => $StorageStatus['id'],
'storageid' => $this->model->id,
'proid' => $item['id'],
'nums' => $item['nums'],
'price' => $item['price'],
'total' => $item['total'],
];
}
$StorageProductStatus = $this->StorageProductModel->validate('common/Depot/StorageProduct')->saveAll($StorageProductData);
if($StorageProductStatus === false)
{
$this->error($this->StorageProductModel->getError());
exit;
}
// 提交事务
Db::commit();
$this->success('添加入库成功');
}catch(\Exception $e) {
// 回滚事务
echo "====";exit;
Db::rollback();
$this->error(__($e->getMessage()));
}
}
return $this->view->fetch();
}