У меня странное поведение с использованием Magento (1.4, старая версия, которую я знаю), когда я сохраняю пользовательскую модель.Magento Сохранить вставку вместо обновления
$tr = Mage::getModel('Middleware/transfer')->load($transfer['transfer_request_id'], 'transfer_request_id');
var_dump(get_class($tr));
var_dump($tr->getfkState());
$tr->setData('fk_state', Middleware_Model_TransferState::TRANSFER_STATE_RECEIVED_MIDDLEWARE);
var_dump($tr->getfkState());
$tr->save();
Мой var_dump дает мне хорошую информации, государство изменяется от 0 до 1 сначала (значение моей постоянной TRANSFER_STATE_RECEIVED_MIDDLEWARE), и класс хорошо Middleware_Model_Transfer.
Однако экономия пытается сделать вставку вместо обновления, и я ве получил ошибку ниже
PHP Fatal error: Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '11' for key 'PRIMARY'' in magento/lib/Zend/Db/Statement/Pdo.php:234
Я полностью понимаю, что у меня есть дубликат ключа на моем transfer_request_id и это, очевидно, верно, но почему Magento пытается вставить, когда мне нужно обновить эти данные, которые я получил. Возможно ли принудительное обновление, если оно найдено на модели Magento?
Благодаря
Я искал часы, пытаясь понять это. Спасибо @nicolas D! –