如何在控制器中启动事务,然后尝试保存多个彼此无关的模型?如果有任何失败,显然我希望回滚,如果一切正常,然后提交。
我想我的问题是我应该在哪个模型上开始交易?
$datasource = $this->Car->getDataSource();
$datasource->begin($this->Car);
$car = $this->Car->save();
$dog = $this->Dog->save();
$house = $this->House->save();
if ($car && $dog && $house) {
$datasource->commit($this->Car);
} else {
$datasource->rollback($this->Car);
}
这是否可以确保 Dog 和 House 以及 Car 的保存?即事务在哪个模型上启动是否重要?