我有兩個相關的模型,富和酒吧,其中酒吧$belongsTo
富。現在每個Foo必須具有條,即兩者必須同時創建。使用CakePHP的建模系統,是否可以在創建Foo(可能通過saveAll()
)時自動創建Bar或者我應該將該功能寫入Foo::afterSave()
?
感謝您的幫助。
我有兩個相關的模型,富和酒吧,其中酒吧$belongsTo
富。現在每個Foo必須具有條,即兩者必須同時創建。使用CakePHP的建模系統,是否可以在創建Foo(可能通過saveAll()
)時自動創建Bar或者我應該將該功能寫入Foo::afterSave()
?
感謝您的幫助。
是的 - 只是使用建立您的數據爲Foo和酒吧,然後saveAll()
。
添加到Dave的答案。
如果您的數據庫表支持事務,通常在MySql中爲InnoDB storage engine
。您還可以告訴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.