public function store(Request $request, $id)
{
$externalAccount = ExternalAccounts::find($id);
DB::beginTransaction();
try {
$externalAccount->fund_number = 999;
$externalAccount->capital_balance = 'kjhkjhkj';
$externalAccount->save();
DB::commit();
} catch (Exception $e){
DB::rollback();
throw $e;
}
}
第一次用Laravel。。
capital_balance字段为int类型,我故意传进去字符串类型,这样写入肯定会出错的。
但是上面的fund_number居然写入成功了,没有回滚= =。。
求老司机解答。。
mysql引擎没错,是InnoDB。
我估计是mysql的坑,你拿生成好的sql直接到mysql里面去执行一下看看
mysql 严格模式和非严格模式的区别,你新写入的数据capital_number字段为0 或者空?
Laravel框架已经重写了各种exception异常处理类
事务提交的异常处理类为IlluminateDatabaseQueryException,所以用exception类是捕获不到事务提交错误的异常的
这样才能捕获到