Php $model->;save()添加';其中id=1';条件

Php $model->;save()添加';其中id=1';条件,php,oracle,yii,yii-cactiverecord,Php,Oracle,Yii,Yii Cactiverecord,我正在尝试更新一个模型,我加载模型,从帖子中获取所有数据,然后保存它,很简单。。。但是我的记录从未更新过,所以转到日志,发现更新查询添加了一个奇怪的条件。仅供参考,MD_ID是我的主键 因此,我加载模型,下一行是Yii生成的SQL: $model = Ositems::model()->findByPk($id); SELECT * FROM "MTODETALLADO_INV" "t" WHERE "t"."MD_ID"=249217 如果回显加载模型的json_编码,我将在浏览器中

我正在尝试更新一个模型,我加载模型,从帖子中获取所有数据,然后保存它,很简单。。。但是我的记录从未更新过,所以转到日志,发现更新查询添加了一个奇怪的条件。仅供参考,MD_ID是我的主键

因此,我加载模型,下一行是Yii生成的SQL:

$model = Ositems::model()->findByPk($id);

SELECT * FROM "MTODETALLADO_INV" "t" WHERE "t"."MD_ID"=249217
如果回显加载模型的json_编码,我将在浏览器中获取该字典:

echo json_encode($model->getAttributes());

{""MD_BODEGA":"01","MD_PRODUCTO":"0031253","MD_CANTIDAD":"1","MD_PRECIOTOTAL":"1466",,"MD_PORCENTAJEDESCUENTO":"0","MD_IDCABECERA":"97403","MD_ID":"249217","MD_OBSERVACION":null}
在这一点上,一切看起来都是正确的,现在我从post中获取值:

$model->attributes = $_POST;
在这里,如果回显模型的值,我得到了正确的新值,那么问题就出现了:我保存了模型,这是SQL Yii运行(我替换了:yp_u值以使其更可读)

这就是问题所在其中“MTODETALLADO_INV.”“MD_ID”=1,如果我的型号ID一直是249218,为什么会使它成为1

一些考虑: 我的模型只从实际表中获取我需要的一些列,Yii将其他列设置为null,我在前面的代码中省略了它们。
该表位于一个外部数据库中,我使用一个自定义ActiveRecord,它根据用户管理与数据库的CDB连接。(这是一个webservice应用程序)

我遵循了函数save()的操作,最终发现问题出在它试图获取主键时。我在我的模型中使用了这种方法:

public function primaryKey()
    {
        return array('MS_ID');
    }
}
但必须是:

public function primaryKey()
    {
        return 'MS_ID';
    }
}

不知何故,这就是问题的原因。

您是否可以添加模型的
规则()
$\u POST的转储?
public function primaryKey()
    {
        return 'MS_ID';
    }
}