【发布时间】:2017-10-11 22:50:02
【问题描述】:
目前为了在我的测试中使用DatabaseTransactions,我必须在MySQL设置中关闭autocommit。但是,它使$model->save() 停止工作(没有数据保存到数据库中)。我在这里做错了什么?
【问题讨论】:
标签: database laravel-5 laravel-eloquent
目前为了在我的测试中使用DatabaseTransactions,我必须在MySQL设置中关闭autocommit。但是,它使$model->save() 停止工作(没有数据保存到数据库中)。我在这里做错了什么?
【问题讨论】:
标签: database laravel-5 laravel-eloquent
嗯,你基本上告诉数据库不要插入任何东西,直到你提交事务。所以你的模型保存得很好。但是数据库没有在数据文件中写入插入/更新。它正在等待你通过发出 COMMIT 语句来告诉它何时执行。
要修复它,您不应关闭自动提交,而应正确使用事务。
有关如何在 Laravel 中正确使用数据库事务,请参阅我的文章: http://lesichkov.co.uk/article/20150927110905758776/laravel-5-database-transactions
【讨论】: