###前提・実現したいこと
以下のようなテーブルがあり、parentTableからchildTable1とchildTable2にはhasOneのアソシエーションで親子関係が定義されています。
childTable1とchildTable2は親テーブル(parentTable)のidを持っていますが、双方のidは持っていません。
SQL
1create table parentTable { 2 id serial primary key, 3 created datetime, 4 modified datetime, ... 5} 6create table childTable1 { 7 id serial primary key, 8 created datetime, 9 modified datetime, 10 parentTable_id int(10), ... 11} 12create table childTable2 { 13 id serial primary key, 14 created datetime, 15 modified datetime, 16 parentTable_id int(10), ... 17}
cakephp1.3のシステムで、childTable1とchildTable2のデータをそれぞれ個別に登録する画面を作成していました。
今回、それらの登録画面を統合し、1つの画面から2つのテーブルのデータを登録するような改修を行うことになりました。
データ更新したテーブルのみmodifiedを更新するため、親テーブルは更新対象としていません。
###発生している問題
これら2つのテーブルに1トランザクションでデータを登録したく、saveAll()を使おうとしたのですが、両方のデータを同時に更新する方法が分かりません。
###試したこと
以下のようにデータを作成してchildTable1モデルのsaveAll()を呼び出したとき、childTable1のデータだけしか更新されませんでした。
$data = array( ['childTable1'] => array( ['id'] => 1 ...) ['childTable2'] => array( ['id'] => 1 ...) ); $this->childTable1->saveAll($data);
アソシエーションの無いテーブルを同時に更新するにはどうすればよいでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/15 02:52
2016/11/15 02:53