0

モデルが

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 を取得する方法を見つけたいと思います。仕方

4

0 に答える 0