AとBの2つのクラスがあり、それぞれがデータベースからテーブルをマッピングしています。AとBは、主キー列と2番目のテーブルの別の列の間に関係があります。1つの関数で両方のテーブルを挿入/更新したいのですが、それを行うための最良の方法がわかりません。
Googleでいくつかの解決策を見つけましたが、それが最善の方法かどうかはわかりません。私は何をすべきか?私の考えは、AとBのsaveメソッドを呼び出すようなsave()
メソッドを用意することです。これが最良の選択である場合、CFormModelまたはCActiveRecordのどちらを拡張する必要がありますか?CFormModelを拡張しようとすると、ドキュメントに従うことで、save()
またはinsert()
またはなどのメソッドを使用するのは正しくありませんupdate()
。ドキュメントによると、CFormModelは、保存されないデータを保存するためにのみ使用されます。CActiveRecordを拡張すると、save()メソッドにアクセスできますが、何もマップしません。ドキュメントによると、CActiveRecordはデータベースからテーブルをマップする必要があります。
それで、これを行うための最良の方法は何ですか?