有没有人知道为什么这段代码不会更新我的数据库中的order_id列? 是因为我们处于模型背景中吗?因为类似的代码在控制器上下文中起作用。
如果我转储$ order变量,我可以看到它已经更新了对象的order_id值,但是它没有保存到数据库中。
这些是表planner_orders中的字段:
id int
order_id bigint
visitor_id bigint
store_id int
repair_customers_id int
start_timeslot timestamp
timeslots int
location varchar
vat double
total_vat double
created timestamp
<?php
class Alphabase_Planner_Model_Order extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('planner/order');
}
public function create($visitor, $store, $customer, $start, $timeslots = 0, $location, $vat, $total_vat) {
$order = Mage::getModel('planner/order')
->setData('visitor_id', $visitor)
->setData('store_id', $store)
->setData('repair_customers_id', $customer)
->setData('start_timeslot', $start)
->setData('timeslots', $timeslots)
->setData('location', $location)
->setData('vat', $vat)
->setData('total_vat', $total_vat)
->setData('created', now())
->save();
$id = $order->id;
$order_id = $store.sprintf('%08d', $id);
$order->setOrderId($order_id);
$order->save();
return $order;
}
}