Magento:在观察者之间传递数据

时间:2015-07-20 13:52:30

标签: php magento

我有以下问题:

我使用观察者" controller_action_predispatch_checkout_onepage_saveBilling"要获取结算部分中自定义下拉列表的值,使用此下拉列表,用户可以选择客户组,但前提是他在结帐阶段创建帐户。

现在我想设置用户选择的客户组" sales_order_place_after"观察者,但我无法理解如何将group_custom_id值从第一个观察者传递到第二个观察者。

2 个答案:

答案 0 :(得分:1)

  1. 使用

    将两个观察者注册为单身
    <type>singleton</type>
    

    config.xml中(或将其删除,因为它是默认类型)

  2. 将您的数据存储为观察者类本身的属性

    class My_Module_Model_Observer
    {
        protected $_myDropdownValue;
    
        public function onSaveBilling(Varien_Event_Observer $observer)
        {
            // ...
            $this->_myDropdownValue = ...;
        }
    
        public function onPlaceOrder(Varien_Event_Observer $observer)
        {
            //access value with $this->_myDropdownValue;
        }
    }
    

答案 1 :(得分:0)

请记住KISS。将值存储在变量中,可能在观察者类中,因为观察者通常是单身人士,单身人士不会离开,直到页面被提供。