我通过与我的模型
的关联设置了一个工作的hasManyDrug
Record
RecordDrug
'药物'表有两个字段。
id | drug
我的'record_drugs'表有三个字段
id | record_id | drug_id
记录表非常不重要,除了它的'id'字段。
我想做什么;用户将有一个要提交的表单,并且一个字段他将能够输入“药物”,用户使用自动完成功能,将能够提交与“Drug.drug”匹配的确切值。我面临的问题是我希望能够找到药物的相关ID,然后将该ID记录到'record_drugs''drug_id'字段中。
现在一切正常,正确的'record_id'是与它关联的'Record.id'值存储的商店,除了药物表之外,我希望发生同样的事情。
$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.');
}
}
我知道一个可能的解决方案是提交“药物”值,然后运行查询以获取与之关联的ID,但这似乎是一个廉价的解决方案,我宁愿弄清楚如何获得id是正确的方式