Magento观察者在localhost上工作,而不在服务器上工作

use*_*875 0 php magento

我为类别创建做了一个观察者,它在localhost(在Mac上)工作正常,在服务器(Linux)上运行不正常.

config.xml文件:

<?xml version="1.0"?>
<config>
    <modules>
        <Vmo_CategoryToAttributeOption>
            <version>0.1.0</version>
        </Vmo_CategoryToAttributeOption>
    </modules>
    <global>
        <models>
            <vmo_categorytoattributeoption>
                <class>Vmo_CategoryToAttributeOption_Model</class>
            </vmo_categorytoattributeoption>
        </models>
        <helpers>
            <vmo_categorytoattributeoption>
                <class>Vmo_CategoryToAttributeOption_Helper</class>
            </vmo_categorytoattributeoption>
        </helpers>
        <events>
            <catalog_category_prepare_save>
                <observers>
                    <vmo_categorytoattributeoption_model_observer>
                        <class>vmo_categorytoattributeoption_model_observer</class>
                        <method>savecategoryobserver</method>
                    </vmo_categorytoattributeoption_model_observer>
                </observers>
            </catalog_category_prepare_save>
        </events>
    </global>
</config>
Run Code Online (Sandbox Code Playgroud)

这是local/Vmo/CategoryToAttributeOption/Model/Observer.php

class Vmo_CategoryToAttributeOption_Model_Observer extends Varien_Event_Observer
{
    public function __construct()
    {

    }

    public function savecategoryobserver($observer)
    {
        $event = $observer->getEvent();
        $cat_model = $event -> getCategory();

        $name = $cat_model->getName();
        Mage::log("works: " . $name);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是Vmo_CategoryToAttributeOption.xml:

<?xml version="1.0"?>
<config>
    <modules>
        <Vaimo_CategoryToAttributeOption>
            <active>true</active>
            <codePool>local</codePool>
        </Vaimo_CategoryToAttributeOption>
    </modules>
</config>
Run Code Online (Sandbox Code Playgroud)

你知道什么是错的吗?因为在localhost上它工作得很好,但在实时服务器上却没有.

Mar*_*ius 7

我的钱是因为你的本地机器在Windows/MAC上,服务器是linux.
在Windows/MAC上,文件名不区分大小写,在Linux上它们区分大小写.
您在事件中声明了这样的类:

<class>vmo_categorytoattributeoption_model_observer</class>
Run Code Online (Sandbox Code Playgroud)

这意味着Magento在文件中查找该类vmo/categorytoattributeoption/model/observer.php.在Windows/MAC上它找到它,在linux上它不存在.
要解决它,请按以下方式声明模型:

<class>Vmo_CategoryToAttributeOption_Model_Observer</class>
Run Code Online (Sandbox Code Playgroud)

或者更好的是,以标准的方式

<class>vmo_categorytoattributeoption/observer</class>
Run Code Online (Sandbox Code Playgroud)