magento中SetData()出错?

时间:2013-04-08 10:43:46

标签: magento

我正在尝试使用以下代码更新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);

此代码正在使用魅力,但顶部的上述代码确实有效。 有没有人有任何想法?

3 个答案:

答案 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