私はCakePHPアプリケーションで非常に本質的なデータベースを使用していますが、これまでのところ、マルチモデルのビューとコントローラーは正常に機能しています。外部キーとして他のいくつかのテーブルにある単一のテーブル(Entity
)がありますid
entity_id
一部のテーブルは1対1の関係(aCompany
は1のようにEntity
)であり、一部は1対多(Entity
複数のテーブルを持つことができますAddresses
)などです。
データベースモデルを変更できない/変更できないので、これが構造です。
私はsaveAll()
これらのテーブルに次のような入力名でデータを保存するために使用しています。
Entity.type='x' (hidden inside the view)
Company.name
Address.0.street
Address.0.city
Address.1.street
Address.1.city
... and so on ...
そして、私のすべてを救うことは、すべての難しい仕事をしている、、BEGIN TRANSACTION
すべてINSERT
の、そして最後のCOMMIT
...
しかし今、私はEntityCategory
to n関係であるを作成しHABTM
、モデル内に完全な関係を作成しました。
それは私save()
がそれをするときだけ動作しますが、関係だけです、そしてそれは私が使用するとき(以前と同じように)関係を除いてすべてをHABTM
保存します。saveAll()
HABTM
私は何かが足りないのですか?これを正しく機能させるにはどうすればよいですか?今日は次のコードを使用しています。
if (!empty($this->data)) {
$this->Entity->saveAll($this->data);
$this->Entity->save($this->data);
}
はsaveAll()
すべてのデータをいくつかのテーブルに保存し、IDをEntity->id
保存save()
し、HABTM
リレーションを保存しますが、それが正しいかどうか、または構造/モデルを変更した場合に問題が発生する可能性があるかどうかはわかりません。
これはそれを使用するための最良の方法ですか?CakePHP内にその関係を保存する正しい方法はありますか?あなたの経験/知識は私に何を教えてくれますか?