1
我使用的是OctoberCMS builder插件來創建表單以將數據存儲到數據庫中。默認情況下,每個模型都屬於單個數據庫表。並且表單可以將數據存儲到單個數據庫表中。所以如何使用Builder Plugin將數據插入從單個表單捕獲的2個不同表中。使用OctoberCMS Builder插件將數據插入到2個不同表格中使用OctoberCMS Builder插件
問候
我使用的是OctoberCMS builder插件來創建表單以將數據存儲到數據庫中。默認情況下,每個模型都屬於單個數據庫表。並且表單可以將數據存儲到單個數據庫表中。所以如何使用Builder Plugin將數據插入從單個表單捕獲的2個不同表中。使用OctoberCMS Builder插件將數據插入到2個不同表格中使用OctoberCMS Builder插件
問候
要做到這一點你必須手動處理保存過程中使用的模型類。
1-打開你的模型類。
2-寫模型偶函數等public function afterSave(){}
例如,如果我在reservation
模型具有total
字段和我想此字段值被自動地在另一個表中插入稱爲accounting
。
public function afterSave(){
$accounting = \Namespace\Pluginname\Models\Accounting::find(1);
$accounting->myField = $this->total;
$accounting->save();
}
左右的時間內afterSave
,beforeSave
,beforeCreate
或afterCreate
可以處理模型的保存過程。
要查看這些功能之間的區別,你可以閱讀更多此鏈接:https://octobercms.com/docs/database/model#events
很好的回答。儘管在這個通用的場景中,我可能會提出一種不同的方式來保存其他數據,而不是''find(1)'''(它只是找到id = 1的模型,否則失敗,或者)'''findOrCreate(['reservation'=> $ this-> id])'''保存在與這個特定'''reservation'''相關的行中,給出一個更「現實」的例子,並指向[Laravel/Elouent docs](https://laravel.com/docs/5.3/eloquent#other-creation-methods)進行一些更深入的挖掘,... – trollkotze
.. 。還有[關係](https://octobercms.com/docs/database/relations)和[關係行爲](https://octobercms.com/docs/backend/relations#configuring-relation),這可能是在這種情況下更適合使用。 儘管smartassing在這裏,但是:P,並試圖給像我這樣的其他newbiews一些額外的指針,這可能是進一步閱讀的好。 – trollkotze
很好的例子。當然'find(1)'是他可以編寫的代碼來訪問應用程序中的任何模型的一個非現實的例子:D –