我想更新的模型,我加載模型,以從POST中的所有數據,然後保存,容易...但我記錄從不更新,所以去了日誌,發現更新查詢添加了一個奇怪的條件。僅供參考,MD_ID是我的主要關鍵。
所以,我加載模型,下一行是被Yii產生的SQL:
$model = Ositems::model()->findByPk($id);
SELECT * FROM "MTODETALLADO_INV" "t" WHERE "t"."MD_ID"=249217
如果回聲所加載的模型的json_encode我拿到那本字典在我的瀏覽器:
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}
此時一切看起來都對,現在我從博文的值:
$model->attributes = $_POST;
在這裏,如果回聲模型的值,我得到了新的價值觀正確,現在這裏的問題是:我保存模型,這是SQL Yii的運行(我更換了:yp_值,使其更具可讀性)
$model->save();
UPDATE "MTODETALLADO_INV" SET
MD_BODEGA"='01'
MD_PRODUCTO"='0020514
MD_CANTIDAD"='10'
MD_PORCENTAJEDESCUENTO"='0
MD_IDCABECERA"=97403
MD_ID"=249218
MD_PRECIOTOTAL"='36210'
MD_OBSERVACION"=''
WHERE "MTODETALLADO_INV"."MD_ID"=1
有問題! WHERE「MTODETALLADO_INV」。「」MD_ID「= 1,爲什麼會這麼做如果這段時間我的型號ID一直是?
一些注意事項: 我的模型只需要從實際表中獲取一些列,Yii將其他列設置爲null,並在前面的代碼中省略它們。 該表在一個外部數據庫中,我使用了一個自定義的ActiveRecord,它根據用戶管理到數據庫的CDbConnection。 (這是一個Web服務應用程序)
你可以添加你的模型的'rules()'和'$ _POST'的轉儲嗎? – topher