Простой наблюдатель, не стреляющий по событию
Я изучаю наблюдателей и события, но после простого события я не могу решить проблему, так как мне это кажется нормальным, и в 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 ограничены, и я хочу знать, почему это не сработает.
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>
Если вы посмотрите на порядок открытия и закрытия узлов, вы увидите ошибку. Порядок узлов должен быть <global><events>
. Закрывающие узлы расположены в правильном порядке, но открывающие узлы расположены неправильно.