Magento没有打电话给观察员班

时间:2014-12-08 15:44:38

标签: magento magento-1.7

我正在使用下面的配置文件。但是,当我保存产品时,永远不会调用观察者类。

<?xml version="1.0"?>
<config>
<modules>
    <PcTp_Stock>
        <version>1.0.0</version>
    </PcTp_Stock>
</modules>
<global>
    <blocks>
        <stock>
            <class>PcTp_Stock_Block</class>
        </stock>
    </blocks>
    <models>
        <stock>
            <class>PcTp_Stock_Model</class>
        </stock>
    </models>

</global>
<adminhtml>
    <layout>
        <updates>
            <stock>
                <file>stock.xml</file>
            </stock>
        </updates>
    </layout>
    <events>
        <catalog_product_save_after>
            <observers>
                <pctp_stock_product_catalog_data_inventory>
                    <type>singleton</type>
                    <class>stock/observer</class>
                    <method>saveProductTabData</method>
                </pctp_stock_product_catalog_data_inventory>
            </observers>
        </catalog_product_save_after>
    </events>
</adminhtml>

观察者类(Pc_Tp_Stock_Model_Observer)保存到app / code / local / PcTp / Stock / Model / Observer.php

如何让它发挥作用?

<?php

class Pc_Tp_Stock_Model_Observer

2 个答案:

答案 0 :(得分:0)

config.xml中

<?xml version="1.0"?>
<config>
<modules>
    <PcTp_Stock>
        <version>1.0.0</version>
    </PcTp_Stock>
</modules>
<global>
    <models>
        <PcTp_Stock>
            <class>PcTp_Stock_Model</class>
        </PcTp_Stock>
    </models>
</global>
<adminhtml>
    <events>
        <catalog_product_save_after>
            <observers>
                <pctp_stock_save_after>
                    <type>model</type>
                    <class>PcTp_Stock/observer</class>
                    <method>catalogProductSaveAfter</method>
                </pctp_stock_save_after>
            </observers>
        </catalog_product_save_after>
    </events>
</adminhtml>
</config>

应用\代码... \ PCTP \库存\模型\ Observer.php

<?php

class PcTp_Stock_Model_Observer {

    public function catalogProductSaveAfter($observer) {
        die('observer launched');
    }

}

答案 1 :(得分:-1)

您的命名体系结构在声明观察者/类的位置看起来有点偏。尝试将其更改为此;

<observers>
            <PcTp_Stock_Model_Observer>
                <type>singleton</type>
                <class>PcTp_Stock_Model_Observer</class>
                <method>saveProductTabData</method>
            </PcTp_Stock_Model_Observer>
</observers>

然后在你的Model / Observer.php文件中;

class PcTp_Stock_Model_Observer {

    public function saveProductTabData() {

        // Do something

    }

}

还要确保该活动在1.7中可用。我使用此网站获取1.7 https://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/的快速参考指南,可能值得尝试使用catalog_product_prepare_save。

最佳

汤姆