加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Magento Observer没有开火

发布时间:2020-12-13 22:49:47 所属栏目:PHP教程 来源:网络整理
导读:每当产品在admin cp中更新时,我都会尝试解雇观察者.记录更新. config.xml中 ?xml version="1.0"?config modules Mod_Products version1.0.0/version /Mod_Products /modules models Mod_Products classMod_Products_Model/class /Mod_Products /models event
每当产品在admin cp中更新时,我都会尝试解雇观察者.记录更新.

config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Mod_Products>
            <version>1.0.0</version>
        </Mod_Products>
    </modules>

    <models>
        <Mod_Products>
            <class>Mod_Products_Model</class>
        </Mod_Products>
    </models>

    <events>
        <catalog_product_save_after>
            <observers>
                <Mod_Products_stock>
                    <type>singleton</type>
                    <class>Mod_Products_Model</class>
                    <method>logUpdate</method>
                </Mod_Products_stock>
            </observers>
        </catalog_product_save_after>
    </events>
</config>

Observer.php

class Mod_Products_Model_Observer {
    public function logUpdate($observer) {
        $event = $observer->getEvent()->getControllerAction()->getFullActionName();

        Mage::log('Event Fired: ' . $event);
        Mage::log(json_encode($observer->getEvent()));
    }
}

日志中没有错误也没有输出.

解决方法

让我们一个一个地浏览文件.

应用程序的/ etc /模块/ Mod_Products.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Mod_Products>
            <!-- Change to Community codePool if in app/code/community -->
            <codePool>local</codePool> 
            <active>true</active>
        </Mod_Products>
    </modules>
</config>

应用程序/代码/本地/ MOD /产品的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Mod_Products>
            <version>1.0.0</version>
        </Mod_Products>
    </modules>

    <!-- Marking models as global sometimes helps -->
    <global>
        <models>
            <Mod_Products>
                <class>Mod_Products_Model</class>
            </Mod_Products>
        </models>
    </global>

    <events>
        <catalog_product_save_after>
            <observers>
                <mod_products_model_observer>
                    <type>singleton</type>
                    <class>Mod_Products_Model_Observer</class>
                    <method>logUpdate</method>
                </mod_products_model_observer>
            </observers>
        </catalog_product_save_after>
    </events>
</config>

应用程序/代码/本地/ MOD /产品/型号/ Observer.php

class Mod_Products_Model_Observer {
    public function logUpdate($observer) {
        $event = $observer->getEvent()->getControllerAction()->getFullActionName();

        Mage::log('Event Fired: ' . $event);
        Mage::log(json_encode($observer->getEvent()));
    }
}

注意文件名和目录,以及我更新的config.xml中的不同xml句柄.如果这对您有用,请告诉我.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读