gpt4 book ai didi

php - Magento Save 进行插入而不是更新

转载 作者:可可西里 更新时间:2023-11-01 00:59:29 24 4
gpt4 key购买 nike

当我保存自定义模型时,使用 Magento(1.4,我知道的旧版本)有一个奇怪的行为。

                $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 的模型上找到,是否可以强制更新?

谢谢

最佳答案

能否请您设置 Id,也在数据中,然后尝试将其保存为更新数据。

$tr = Mage::getModel('Middleware/transfer')->load($transfer['transfer_request_id'], 'transfer_request_id');

$tr->setId(11); // Your entity id

$tr->save();

关于php - Magento Save 进行插入而不是更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31513295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com