我有一个关于事件的观察者。奥伯弗的代码:
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没有将数据保存到这些列的任何想法?
答案 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)