Masalahnya di sini adalah bagian dari pemeriksaan fungsi penyimpanan sumber daya magento jika kunci primer diatur ke kenaikan otomatis dan kemudian menghapusnya dari data yang disimpan jika ini masalahnya.
Di Mage_Core_Model_Resource_Db_Abstract::saveAnda dapat melihat bagaimana itu berurusan dengan$this->_isPkAutoIncrement
/**
* Not auto increment primary key support
*/
if ($this->_isPkAutoIncrement) {
$data = $this->_prepareDataForSave($object);
unset($data[$this->getIdFieldName()]);
$this->_getWriteAdapter()->update($this->getMainTable(), $data, $condition);
} else {
$select = $this->_getWriteAdapter()->select()
->from($this->getMainTable(), array($this->getIdFieldName()))
->where($condition);
if ($this->_getWriteAdapter()->fetchOne($select) !== false) {
$data = $this->_prepareDataForSave($object);
unset($data[$this->getIdFieldName()]);
if (!empty($data)) {
$this->_getWriteAdapter()->update($this->getMainTable(), $data, $condition);
}
} else {
$this->_getWriteAdapter()->insert($this->getMainTable(), $this->_prepareDataForSave($object));
}
}
Jadi untuk memperbaiki masalah saya, saya hanya perlu mengatur $_isPkAutoIncrementsumber daya Model saya untuk false dan Magento akan menyimpan PK dalam data dan menyimpannya ke dalam tabel.