Magento不保存表中的所有数据

时间:2014-09-18 20:20:40

标签: sql magento

我有一个关于事件的观察者。奥伯弗的代码:

public function saveQuoteAfter($evt) {
        $quote = $evt->getQuote();
        $quoteIddd = $quote->getId();
        $email = $quote->getPEmail();
        $phone = $quote->getPPhone();
        $p = $quote->getPP();
        $fields = array('quote_id' => $quoteIddd, 'email' => $email, 'phone' => $phone, 'p' => $p);
        $model = Mage::getModel('my_module/quote')->setData($fields);
        $model->save(); 
    }

Mage :: getModel(' my_module / quote') - 这是将数据保存到表的自定义模型。 所有变量都存在,可以保存在表格的前3列中。无法将任何数据保存到任何其他列。

install script:
$installer = $this;
$installer->startSetup();
$installer->run("
CREATE TABLE IF NOT EXISTS {$this->getTable('module_quote')} (
  `id` int(11) unsigned NOT NULL auto_increment,
  `quote_id` int(11) unsigned NOT NULL,
  `email` text NOT NULL,
  `phone` text NOT NULL,
  `p` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
$installer->endSetup();

所以我无法将数据保存到' p'柱。为什么magento没有将数据保存到这些列的任何想法?

1 个答案:

答案 0 :(得分:-1)

ciemin而不是of setData() use addData()

因为setData只保存一个列值 这个函数看起来像

 public function addData(array $arr)
    {
        foreach($arr as $index=>$value) {
            $this->setData($index, $value);
        }
        return $this;
    }

使用addData函数可以使用索引对数组赋值,但setData只保存索引为ex的一个值:setData('fieldname',$ val)