我有不同的模型,它們是另一個模型的擴展。在保存數據後獲取ID時出現奇怪的問題
classes (SubModel1, SubModel2, ..,6) extends -> HighModel extends -> Appmodel
每次我在每個子模型中保存數據時,我會在我的HighModel中調用一個函數來保存剛保存的子模型的ID。
它有五個子模型作品完美,但在一個ID永遠是:($shouldBeThisId - 1)
在添加和編輯功能.... O_O
這是我的附加功能:
public function add() {
if ($this->request->is('post')) {
$this->M18Tab->create();
if ($this->M18Tab->save($this->request->data)) {
$data = $this->M18Tab->findById($this->M18Tab->id); //<---problem's here
if($this->M18Tab->M18Model->saveVersion($data)){
$this->Session->setFlash(__('The m18 tab has been saved'));
$this->redirect(array('action' => 'view', $this->M18Tab->id));
} else {
$this->Session->setFlash(__('Error with versioning system'));
}
} else {
$this->Session->setFlash(__('The m18 tab could not be saved. Please, try again.'));
}
}
//view variables
}
確定。所以在保存後我記得「剛剛保存的數據」並將其傳遞給$this->SubModel->HighModel->saveVersion($data)
。奇怪的是,如果我試圖強制ID找到:
$data = $this->M18Tab->findById(33);
它仍然會找到剛纔插入的ID之前的ID:0。
這可能是由什麼引起的?該代碼是所有6款車型,並在唯一一個我有這個問題同樣..
「它仍然只是一個插入之前找到ID 「,我不明白你的意思。試圖強制發現時,你沒有得到33條記錄? – Nunser
我不知道蛋糕,但大多數模型系統不立即沖洗,所以可能是你的煩惱的來源 –
是的..最後一個我得到了37 = S –