我有一个自定义表,其主键具有 varchar 数据类型。我需要相应地更新一些记录。我使用下面的代码加载特定的行;
$model = Mage::getModel('test/one')->load($Sku,'CODE');
CODE 是主键字段值。 所有表字段名称都是大写字母。
当我使用下面的代码尝试编辑时,我收到重复输入错误。
$model->setData('DESC','test description');
model->save();
我认为它正在尝试插入新记录而不是更新。但为什么会这样呢。任何人都可以帮助我。
非常感谢你。
答案 0 :(得分:0)
尝试使用此方法
$model = Mage::getModel('test/one')->load($Sku,'CODE');
$data = array("position"=> "DESC", "content"=> "test description");
$model = model->addData($data);
$model->save();
答案 1 :(得分:0)
我能想到为什么尝试插入新行的唯一原因是对load()
的调用返回null
,因此不是表中的现有行。
尝试在load()
之后或save()
之前添加条件。
$model = Mage::getModel('test/one')->load($Sku,'CODE');
if(!this->getId()){
echo "no existing row found";
}
除此之外,您可能需要调试以找出load()
返回的原因null