FirmaZnackaを形成する HABTM 関係にFirmaとZnackaの2 つのモデルがあります。次のようなJavaScriptオートコンプリート機能を備えたフォームがあります。
echo $this->Form->input("Znacka.1.id");
echo $this->Form->input("Znacka.1.name");
echo $this->Form->input("Znacka.2.id");
echo $this->Form->input("Znacka.2.name");
ユーザーがフォームを送信したら、データを保存/更新/作成してアーカイブする必要があります。
- ユーザーが入力したZnackaの名前が存在しない場合は、作成します (存在する場合は、新しく作成しないでください!)。
- リレーション テーブル レコードの処理
提出されたデータは次のようになります$this->request->data
。
array(
'Znacka' => array(
0 => array(
'id' => string '',
'nazov' => string 'First'),
1 => array(
'id' => string '',
'nazov' => string 'Second')
)
)
Firmaの IDは既知であり、静的であり、によって設定され$this->Firma->id = $id;
ます。コードは、デフォルトで Firma モデルをインポートした FirmyController で実行されます。フォームを使用して新しいデータを作成するだけでなく、既存のデータを更新しています。
The Cookbook からこれを見つけようとしましたが、結果はありませんでした。を使用して保存しようとしました$this->Firma->saveAssociated($this->request->data)
が、他の保存機能も試しました。
すべての Znacka の名前を調べることでブルート フォース ソリューションがあることはわかっていますが、数十行のコードを使用しない優れた CakePHP ソリューションを探しています。
CakePHP 2.0 を使用しています。ご協力いただきありがとうございます。