0

CodeIgniter/Datamapperとの1対多の関係の更新に問題があります。私の頭の中では、1対多の関係が更新されたときにという考えがありました。関係テーブル内の既存のレコードが削除され、新しい関係が追加されます。これは当てはまらないようです。

以下を使用して、毎回リレーションシップテーブルに新しいレコードを追加します。

$item->save($banners);

作成された関係は正しいですが$banners、関係テーブルに含まれるオブジェクトのみが含まれ、履歴アイテムは含まれないことを期待していました。

これは正しい機能ですか?もしそうなら、この更新プロセスを機能させるための最良の方法は何ですか?

ありがとう

4

1 に答える 1

1

1対多は、「1つだけを関連付けることができる」という意味ではありません。ウィキペディアを参照してください

これは、関係の「一方」の側に外部キーが含まれていることを意味します。

この動作が必要な場合は、既存のリレーションを手動でリセットする必要があります。これは、「foreign_key」をNULLに設定する更新クエリを使用すると最も速くなります。「foreign_key」は、関連するオブジェクトの「id」値です。

于 2011-12-23T20:10:19.893 に答える