无法在magento模块上打开流

Lui*_*cia 1 php zend-framework magento php-5.3 magento-1.7

我正在尝试在特定事件上创建一个观察者,以便在会话中保存url referrer.

我创建了这个结构:http: //screencast.com/t/TG7brmUi

该模块似乎没问题,我可以在magento配置上看到. http://screencast.com/t/5d4FXIJwrGk

代码如下:

Luisvalencia_Affiliate.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Luisvalencia_Affiliate>
            <active>true</active>
            <codePool>community</codePool>
        </Luisvalencia_Affiliate>
    </modules>
</config>
Run Code Online (Sandbox Code Playgroud)

config.xml中

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Luisvalencia_Affiliate>
            <version>0.0.1</version>
        </Luisvalencia_Affiliate>
    </modules>
    <frontend>
        <events>
            <controller_action_predispatch>
                <observers>
                    <luisvalencia_affiliate>
                        <class>luisvalencia_affiliate/observer</class>
                        <method>captureReferral</method>
                        <type>singleton</type>
                    </luisvalencia_affiliate>
                </observers>
            </controller_action_predispatch>
        </events>
    </frontend>
</config>
Run Code Online (Sandbox Code Playgroud)

和Observer.php

<?php
class Luisvalencia_Affiliate_Model_Observer
{
    const COOKIE_KEY_SOURCE = 'luisvalencia_affiliate_source';

    public function captureReferral(Varien_Event_Observer $observer)
    {
        $referrer=Mage::app()->getRequest()->getServer('HTTP_REFERER');
        Mage::getSingleton('core/session')->setReferrer($referrer);
        $outputMessage = Mage::getSingleton('core/session')->getReferrer();
        echo $this->__($outputMessage);
    }

    protected function _getCookieLifetime()
    {
        $days = 1;
        // convert to seconds
        return (int)86400 * $days;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我仍然在system.log上看到这个,我不明白.

2014-08-13T15:50:17+00:00 ERR (3): Warning: include(Mage/Luisvalencia/Affiliate/Model/Observer.php): failed to open stream: No such file or directory  in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
2014-08-13T15:50:17+00:00 ERR (3): Warning: include(Mage/Luisvalencia/Affiliate/Model/Observer.php): failed to open stream: No such file or directory  in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
2014-08-13T15:50:17+00:00 ERR (3): Warning: include(): Failed opening 'Mage/Luisvalencia/Affiliate/Model/Observer.php' for inclusion (include_path='/home/theprint/public_html/preprod/app/code/local:/home/theprint/public_html/preprod/app/code/community:/home/theprint/public_html/preprod/app/code/core:/home/theprint/public_html/preprod/lib:.:/usr/lib/php:/usr/local/lib/php')  in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
Run Code Online (Sandbox Code Playgroud)

Raj*_*omy 5

您需要在config.xml.ie中定义模型,您需要将此代码放在config.xml文件中

<global>
        <models>
            <luisvalencia_affiliate>
                <class>Luisvalencia_Affiliate_Model</class>
            </luisvalencia_affiliate>
        </models>      
</global>
Run Code Online (Sandbox Code Playgroud)

如果没有这个,Magento找不到您在观察者中定义的Observer文件.