我有不同的模型,它们是另一个模型的扩展。
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);
它仍然会找到刚刚插入的 :0 之前的 id。
这可能是由什么引起的?所有 6 个模型的代码都是相同的,只有一个我有这个问题..