Concrete 5 (5.4.0+) 用の新しいパッケージを作成しています。新しいブロックの挿入は完全に機能します。しかし、既存のブロックを編集すると、[保存] をクリックすると、UPDATE ではなく INSERT が再試行されます。
これに影響を与えるデータベースの 2 つのフィールドは、bID と eID です。どちらもnon-auto-incrementing INT(10) default none NOT NULL
です。
値はコントローラーの連想配列$args
で渡され、親の保存メソッドを次のように呼び出していますParent::save($args);
ヘルプ/入力をいただければ幸いです。PS: ネットでこれを調べたところ、C5 フォーラムで、主にデータベース フィールドに関連するいくつかのことを試してみましたが、それでも上記のエラーが発生します。可能であれば、ADODB の save() メソッドを上書きしたくありません。
- - 編集 - -
おそらく、私はこれをすべて間違って見ています。私が達成しようとしていることを言わせてください。ブロックを複数回編集しても、eID が (たとえば) 37 のままである必要があります。bID は AFAIC からインクリメントできます。
編集時に eID を 37 のままにし、新しいインスタンスの作成時に 1 ずつ増やすにはどうすればよいですか? わかる?
2 番目のテーブルは eID フィールドを参照し、新しいインスタンスが作成されない限り、このテーブルのエントリの編集されたインスタンスは同じ eID を持つ必要があります。Sry - 私が知っている泥のように澄んでいます。