Php Can';t保存在事件观察程序中
我创造了一个观察者。 当它触发时,它会提取所有信息,但不会将数据插入数据库 config.xmlPhp Can';t保存在事件观察程序中,php,magento,events,observers,Php,Magento,Events,Observers,我创造了一个观察者。 当它触发时,它会提取所有信息,但不会将数据插入数据库 config.xml <config> <global> <models> <connector_mysql4> <class>Custom_Connector_Model_Mysql4</class> <entities>
<config>
<global>
<models>
<connector_mysql4>
<class>Custom_Connector_Model_Mysql4</class>
<entities>
<taxordermap>
<table>tax_order_map</table>
</taxordermap>
</entities>
</connector_mysql4>
</models>
<events>
<sales_order_place_after>
<observers>
<orderGetShopVatSettings>
<class>Connector_Model_Observers_Order</class>
<method>setSetting</method>
</orderGetShopVatSettings>
</observers>
</sales_order_place_after>
</events>
</global>
</config>
据我所知,数据已保存,但不会显示在数据库中。
它并不简单地存储,尽管它存储了它。如果这是完整的config.xml,您可能忘记为您的模型添加模型节点和资源模型:
<models>
<connector>
<class>Connector_Model</class>
<resourceModel>connector_mysql4</resourceModel>
</connector>
<connector_mysql4>
<class>Connector_Model_Mysql4</class>
<entities>
<taxordermap>
<table>tax_order_map</table>
</taxordermap>
</entities>
</connector_mysql4>
</models>
连接器模型
连接器_mysql4
连接器\u型号\u Mysql4
税单地图
另外,对于第一个视图,我认为您的_init()调用并不好。我想应该是connector/taxordermap,而不是connector/actaxordermap。
如果你有任何问题,请离开
<?php
class Connector_Model_Mysql4_Taxordermap extends Mage_Core_Model_Mysql4_Abstract{
/**
* Constructor
*/
protected function _construct(){
$this->_init('connector/actaxordermap','orderid');
}
}
<?php
class Connector_Model_Mysql4_Taxordermap_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract{
/**
* Constructor
*/
public function _construct(){
$this->_init('connector/actaxordermap');
}
}
<?php
class Connector_Model_Observers_Order{
public function setSetting(Varien_Event_Observer $observer){
$order = $observer->getEvent()->getOrder();
$orderid = $order->getId();
Mage::log("orderid: $orderid");
$shippingTax = (int)Connector_Model_System_Service::ShippingIncludesTax();
$tax = (int)Connector_Model_System_Service::priceIncludesTax();
Mage::log("tax: $tax");
Mage::log("shipping: $shippingTax");
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$model = Mage::getModel('connector/taxordermap');
$model->setOrderid($orderid);
$model->setTax($tax);
$model->setShipping($shippingTax);
Mage::log($model);
try{
$model->save();
}catch(Exception $e){
Mage::log("error: $e->getMessage();");
}
Mage::log($model);
}
}
2014-03-12T14:53:29+00:00 DEBUG (7): orderid: 59
2014-03-12T14:53:29+00:00 DEBUG (7): tax: 0
2014-03-12T14:53:29+00:00 DEBUG (7): shipping: 1
2014-03-12T14:53:29+00:00 DEBUG (7): Connector_Model_Taxordermap Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => connector/taxordermap
[_resource:protected] =>
[_resourceCollectionName:protected] => connector/taxordermap_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[orderid] => 59
[tax] => 0
[shipping] => 1
)
[_hasDataChanges:protected] => 1
[_origData:protected] =>
[_idFieldName:protected] =>
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
2014-03-12T14:53:29+00:00 DEBUG (7): Connector_Model_Taxordermap Object
(
[_eventPrefix:protected] => core_abstract
[_eventObject:protected] => object
[_resourceName:protected] => connector/taxordermap
[_resource:protected] =>
[_resourceCollectionName:protected] => connector/taxordermap_collection
[_cacheTag:protected] =>
[_dataSaveAllowed:protected] => 1
[_isObjectNew:protected] =>
[_data:protected] => Array
(
[orderid] => 59
[tax] => 0
[shipping] => 1
)
[_hasDataChanges:protected] =>
[_origData:protected] =>
[_idFieldName:protected] => orderid
[_isDeleted:protected] =>
[_oldFieldsMap:protected] => Array
(
)
[_syncFieldsMap:protected] => Array
(
)
)
<models>
<connector>
<class>Connector_Model</class>
<resourceModel>connector_mysql4</resourceModel>
</connector>
<connector_mysql4>
<class>Connector_Model_Mysql4</class>
<entities>
<taxordermap>
<table>tax_order_map</table>
</taxordermap>
</entities>
</connector_mysql4>
</models>