我通过与我的模型关联建立了一个工作 hasMany
Drug
Record
RecordDrug
'drugs' 表有两个字段。
id | drug
我的“record_drugs”表有三个字段
id | record_id | drug_id
除了“id”字段外,记录表并不重要。
我想做的事; 用户将有一个要提交的表单,并且他将能够在一个字段中输入“药物”,用户使用自动完成功能将能够提交与“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.');
}
}
我知道一个可能的解决方案是提交“药物”值,然后运行查询以获取与其关联的 id,但这似乎是一个便宜的解决方案,我宁愿弄清楚如何获得正确的 id方法