Magento在observer中获取arg_name

时间:2015-08-31 04:46:29

标签: magento

我可以设置一个观察者来监听其中一个控制器方法跳转,但是,我想将参数传递给观察者,我怎样才能在观察者中获取参数? arg_value

非常感谢

<events>
<controller_action_predispatch_mycompany_mymodule_controllername_recalculation>
<observers>
<mycompany_mymodule>
<class>Mycompany_Mymodule_Model_Observer</class>
<method>processgo</method>
<args>
<arg_name>arg_value</arg_name>
</args>
</mycompany_mymodule>
</observers>
</controller_action_predispatch_mycompany_mymodule_controllername_recalculation>
</events>

1 个答案:

答案 0 :(得分:-1)

请尝试以下内容

&#13;
&#13;
<events>
    <event_to_observe>
        <observers>
            <observer_name>
                <type>singleton</type>
                <class>Namespace_Module_Model_ObserverClass</class>
                <method>observerMethod</method>

                <args>
                    <arg_name>arg_value</arg_name>
                </args>

            </observer_name>
        </observers>
    </event_to_observe>
</events>
&#13;
&#13;
&#13;

&#13;
&#13;
<?php
/**
 * Observer class
 */

class Namespace_Module_Model_ObserverClass {

    /**
     * Observer method
     * 
     * @param Varien_Event_Observer $observer
     * @return void
     */
    public function observerMethod(Varien_Event_Observer $observer) {

        $args = Mage::helper('ecmessenger')->getObserverArgs($observer, get_class($this), __FUNCTION__);
        Mage::log($args, null, 'observer.log');
    }
}
&#13;
&#13;
&#13;

确保Mage :: helper(&#39; ecmessenger&#39;)是您需要在config.xml中创建和指定的帮助程序

如果您有任何疑问,请告诉我