cakephp:更新相关的belogsTo表

cakephp:更新相关的belogsTo表,cakephp,model-associations,Cakephp,Model Associations,我正在更新属于地址模型的零售商模型,当我创建新记录时,它可以轻松地为地址创建新行,并在零售商模型上插入其密钥: 视图: 型号(零售商): 零售商控制器->添加() 但是,当我尝试更新零售商时,零售商模型已更新,但没有更新以前的地址记录,而是创建了新记录,并将其密钥放在零售商表上: RetailersController->edit($id = null) $this->Retailer->id = $id; $this->Retailer->saveAll($thi

我正在更新属于地址模型的零售商模型,当我创建新记录时,它可以轻松地为地址创建新行,并在零售商模型上插入其密钥:

视图:

型号(零售商):

零售商控制器->添加()

但是,当我尝试更新零售商时,零售商模型已更新,但没有更新以前的地址记录,而是创建了新记录,并将其密钥放在零售商表上:

RetailersController->edit($id = null)
$this->Retailer->id = $id;
$this->Retailer->saveAll($this->request->data);
我也试过这个,但不起作用:

RetailersController->edit($id = null)
$post = $this->Retailer->findById($id);
$this->Retailer->id = $id;
$this->request->data['Retailer']['address_id'] = $post['Retailer']['address_id'];
$this->Retailer->saveAll($this->request->data);

你可能只需要告诉它地址的id

echo $this->Form->input('Address.id');

否则它将执行创建,正如您所说。

谢谢,它对我有效,尽管我将地址id的值放在控制器中而不是视图中:-
$this->request->data['Address']['id']=$post['Retailer']['Address\u id']
RetailersController->edit($id = null)
$this->Retailer->id = $id;
$this->Retailer->saveAll($this->request->data);
RetailersController->edit($id = null)
$post = $this->Retailer->findById($id);
$this->Retailer->id = $id;
$this->request->data['Retailer']['address_id'] = $post['Retailer']['address_id'];
$this->Retailer->saveAll($this->request->data);
echo $this->Form->input('Address.id');