我正在尝试使用以下代码更新magento中customer_entity的自定义字段:
$customer = Mage::getModel('customer/customer')->load($customerId);
print_r($customer->getData());
try {
$customer->setData('field', $flag);
$insertId = $customer->save()->getId();
echo "Data successfully inserted. Insert ID: ".$insertId;
print_r($customer->getData());
} catch (Exception $e){
echo $e->getMessage();
}
现在我不明白为什么它没有保存在数据库中,当我写日志客户数据有更新值时,但是当我试图在数据库中看到它没有反映时。
任何想法?
编辑:
$write = Mage::getSingleton("core/resource")->getConnection("core_write");
$sql = "update `customer_entity` set `field` = ".$flag." where`entity_id` =".$customerId;
$write->query($sql);
此代码正在使用魅力,但顶部的上述代码确实有效。 有没有人有任何想法?
答案 0 :(得分:0)
尝试清除缓存一次,然后从magento admin重新编制索引!希望它有效
答案 1 :(得分:0)
首先检查以下内容 1.检查您是否在资源模型中的config.xml中定义了数据库表。 2.记住$ flag的值并检查该字段是否存在。
答案 2 :(得分:0)
步骤1: - 检查config.xml文件中的资源表名称,并清除/ var文件夹中的缓存文件夹,然后检查。
步骤2: - 如果步骤1不能重新编制项目索引而不是检查。
步骤3: - 如果步骤1和2不起作用,那么检查你的表引擎类型是否是InnoDB,而不是将其更改为MyISAM而不是检查。
了解更多信息click here