0
我有以下功能:CakePHP的3.3.0不更新hasOne表
public function edit($id = null)
{
$resident = $this->Residents->get($id, [
'contain' => [ 'ResidentGeneral' ]
]);
if ($this->request->is(['patch', 'post', 'put'])) {
$resident = $this->Residents->patchEntity($resident, $this->request->data);
if ($this->Residents->save($resident)) {
$this->Flash->success(__('The resident has been saved.'));
return $this->redirect(['action' => 'index']);
} else {
$this->Flash->error(__('The resident could not be saved. Please, try again.'));
}
}
$titles = $this->Residents->ResidentGeneral->Titles->find('list', ['limit' => 200]);
$sexes = $this->Residents->ResidentGeneral->Sexes->find('list', ['limit' => 200]);
$maritalStatuses = $this->Residents->ResidentGeneral->MaritalStatuses->find('list', ['limit' => 200]);
$rooms = $this->Residents->ResidentGeneral->Rooms->find('list', ['limit' => 200]);
$nationalities = $this->Residents->ResidentGeneral->Nationalities->find('list', ['limit' => 200]);
$ethnicOrigins = $this->Residents->ResidentGeneral->EthnicOrigins->find('list', ['limit' => 200]);
$this->set(compact('resident', 'titles', 'sexes', 'maritalStatuses', 'rooms', 'nationalities', 'ethnicOrigins'));
$this->set('_serialize', ['resident']);
}
ADD功能是具有
$resident = $this->Residents->get($id, [
'contain' => [ 'ResidentGeneral' ]
]);
是代替
$resident = $this->Residents->newEntity();
和異常相同$ id = null從頂部丟失。
現在,add函數將正確地保存到數據庫,併爲居民提供一個問題的常規表格,但編輯不會更新,它們使用相同的表格,因此所有約定都被保留。
關於此的文檔指出,修補程序和保存都與關聯一起工作一層,即使如此添加也不工作,也因爲添加功能工作,這意味着所有模型都可以正常工作,但是這將不會更新表中的任何關聯記錄。
正如您可能看到大部分代碼已經過烘焙,所以這是框架的運行方式。
任何幫助都會很棒,因爲我離破碎的電腦只有一步之遙。
我有節能問題協會(belongsToMany)也在3.3,回到了3.2.14和它的工作。我不知道爲什麼,相同的代碼。 –
我在另一個開發人員的電腦上發現了相同的情況,他可以使用3.2.X進行編輯,但不能使用3.3.X,核心有可能出現問題嗎? – B1scuit
剛試過一個全新的安裝,兩個表和一個hasOne之間,同樣的事情,沒有更新的內容,會引發github上的問題 – B1scuit