2016-11-07 11 views
1

私はOctoberCMS Builderプラグインを使用してデータをデータベースに保存するためのフォームを作成しています。デフォルトでは、各モデルは単一のデータベーステーブルに属します。また、フォームは単一のデータベーステーブルにデータを格納できます。それで、Builder Pluginを使用して1つのフォームからキャプチャした2つの異なるテーブルにデータを挿入する方法。OctoberCMS Builder Pluginを使用して1つのフォームから2つのテーブルにデータを挿入

よろしく

答えて

2

あなたはモデルクラスを使用して手動で保存プロセスを処理する必要がありますことをすることができません。

1-モデルクラスを開きます。

2-私はreservationモデルでtotalフィールドが、私は別のテーブルに自動的に挿入されるこのフィールドの値はaccountingを呼び出したい場合でも、例えばpublic function afterSave(){}

ように機能モデルを書きます。

public function afterSave(){ 
    $accounting = \Namespace\Pluginname\Models\Accounting::find(1); 
    $accounting->myField = $this->total; 
    $accounting->save(); 
} 

だからafterSavebeforeSavebeforeCreateまたはafterCreate以内にあなたは、モデルの保存処理を扱うことができます。 https://octobercms.com/docs/database/model#events

+0

良い答えを:

は、あなたがこのリンクをより多くを読むことができ、それらの機能の違いを参照してください。この一般的なシナリオでは、おそらく、 '' 'find(1)' ''( 'id = 1'を持つモデルを見つけて、そうでなければ失敗するか、この特定の ''予約 ''に関連付けられた行に保存するために '' 'findOrCreate(['予約' => $ this-> id])' ''を行うことはできますか?もっと現実的な例を挙げ、もっと深く掘り下げるために[Laravel/Elouent docs](https://laravel.com/docs/5.3/eloquent#other-creation-methods)を指してください。 – trollkotze

+0

..また、[関係](https://octobercms.com/docs/database/relations)と[関係の動作](https://octobercms.com/docs/backend/relations#configuring-relation)にも影響します。このシナリオで使用するのがさらに適切です。 ここではちょっとおもしろいですが、私のような他の新しいビューへのポインタを追加しようとしています。 – trollkotze

+0

良い例。もちろん、 'find(1)'は、アプリケーション内のどのモデルにもアクセスするために書くことができるコードの非現実的な例でした:D –

関連する問題