Простой наблюдатель, не стреляющий по событию


Я изучаю наблюдателей и события, но после простого события я не могу решить проблему, так как мне это кажется нормальным, и в system.log тоже ничего нет. Ниже приведен мой модуль etc/config.xml

<config>
    <global>
        <models>
            <csv>
                <class>Training_Csv_Model</class>
            </csv>
        </models>

        <events>
            <customer_login>
                <observers>
                    <csv>
                        <type>model</type>
                        <class>csv/observer</class>
                        <method>logCSV</method>
                    </csv>
                </observers>
            </customer_login>
        </events>
    </global>
</config>

В то время как мой observer.php файл находится под Name_space/module_name/Model/Observer.php и имеет следующий код

    class Training_Csv_Model_Observer{
        public function logCSV($observer){
        $customer = $observer->getCustomer();
        Mage::log($customer->getName()." has logged in", 
                    null,
                    "customer.log");

        }
    }

Я не могу понять, почему это не сработает, так как будет работать простая модель, то есть мой модуль работает и загружается. Мой знания PHP ограничены, и я хочу знать, почему это не сработает.

Author: Sohel Rana, 2016-10-02

2 answers

Добавьте следующий код в свой config.xml

<config>
    <modules>
        <Training_Csv>
            <version>0.0.0.1</version>
        </Training_Csv>
    </modules>
</config>

Ваш config.xml выглядит как

<config>
    <modules>
        <Training_Csv>
            <version>0.0.0.1</version>
        </Training_Csv>
    </modules>
    <global>
        <models>
            <csv>
                <class>Training_Csv_Model</class>
            </csv>
        </models>

        <events>
            <customer_login>
                <observers>
                    <csv>
                        <type>model</type>
                        <class>csv/observer</class>
                        <method>logCSV</method>
                    </csv>
                </observers>
            </customer_login>
        </events>
    </global>
</config>
 3
Author: Sohel Rana, 2016-10-02 06:40:42

Если вы посмотрите на порядок открытия и закрытия узлов, вы увидите ошибку. Порядок узлов должен быть <global><events>. Закрывающие узлы расположены в правильном порядке, но открывающие узлы расположены неправильно.

 0
Author: Shawn Abramson, 2016-10-02 06:23:48