モデルが
Drug
Record
RecordDrug
'drugs' テーブルには 2 つのフィールドがあります。
id | drug
私の「record_drugs」テーブルには3つのフィールドがあります
id | record_id | drug_id
レコード テーブルは、「id」フィールドを除いて、それほど重要ではありません。
私がしたいこと; ユーザーには送信するフォームがあり、1 つのフィールドに「drug」を入力できます。ユーザーは、オートコンプリートを使用して、「Drug.drug」と一致する正確な値を送信できます。私が直面している問題は、関連する薬の ID を見つけて、その ID を「record_drugs」「drug_id」フィールドに記録したいということです。
現在、すべてが機能しており、正しい「record_id」が関連する「Record.id」値とともに保存されています。Drug テーブルを除いて、まったく同じことが起こるようにしたいと考えています。
$this->loadModel('RecordDrug');
$this->loadModel('Drug');
if ($this->request->is('post')) {
$this->Record->create();
$this->request->data['Record']['user_id'] = $this->Auth->user('id');
if ($this->RecordDrug->saveAssociated($this->request->data, array('deep' => TRUE))) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your post.');
}
}
可能な解決策は、送信された「Drug」値を取得し、クエリを実行してそれに関連付けられた ID を取得することですが、それは安価な解決策のように思われ、正しい ID を取得する方法を見つけたいと思います。仕方