我有两个相关的模型,Foo和Bar,其中Bar $belongsTo
Foo。现在每个Foo都必须有一个Bar,即两者必须同时创建。使用 CakePHP 的建模系统,有没有办法在创建Foo时自动创建Bar(可能通过 a ),或者我应该将该功能写入Foo吗?saveAll()
Foo::afterSave()
谢谢您的帮助。
是的 - 只需为 Foo 和 Bar 构建您的数据,然后saveAll()
.
添加到Dave的答案。
如果您的数据库表支持事务,通常InnoDB storage engine
在 MySql 中。您还可以告诉 Cake 尝试一次性保存两条记录。如果一个失败,另一个将被还原。您需要array('atomic' => true)
作为第二个参数传递给saveAll()
$this->ModelName->saveAll($this->request->data, array("atomic" => true));
来自食谱
atomic: If true (default), will attempt to save all records in a single transaction.
Should be set to false if database/table does not support transactions.