2013-08-12 54 views
0

我做了一個類別創建的觀察者,它在localhost(在Mac上)工作正常,並且在服務器(Linux)上無法正常工作。Magento觀察者在本地主機上工作,而不是在服務器上工作

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> 

,這是本地/使用vmo/CategoryToAttributeOption /型號/ 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); 
    } 
} 

,這是Vmo_CategoryToAttributeOption.xml:

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Vaimo_CategoryToAttributeOption> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Vaimo_CategoryToAttributeOption> 
    </modules> 
</config> 

你有什麼想法嗎?因爲在本地主機上它工作的很好,但在實時服務器上卻不行。

+0

是否適用於你的地方,所以我覺得這是你的代碼沒有問題。您是否嘗試刷新緩存? – nXqd

+0

是的,我做到了。此外,我做了reindexing,它仍然無法正常工作。它只是當我嘗試創建類別卡住了 - 它只顯示請等待並加載 – user2331875

回答

7

我的錢是因爲你的本地機器在Windows/MAC和服務器是linux。
在Windows/MAC上,文件名不區分大小寫,在Linux上它們區分大小寫。
你宣佈這樣在你的事件類:

<class>vmo_categorytoattributeoption_model_observer</class> 

這意味着Magento的查找文件vmo/categorytoattributeoption/model/observer.php中的類。在Windows/MAC上它發現它,在Linux上它不存在。
爲了解決它申報模式是這樣的:

<class>Vmo_CategoryToAttributeOption_Model_Observer</class> 

或者更好的是,在標準的方式

<class>vmo_categorytoattributeoption/observer</class> 
+0

這是正確的答案!謝謝!我的本地機器是Mac - 忽略大小寫:) – user2331875

+0

@ user2331875 woa,我不知道Mac忽略大小寫?我必須是別的東西 – nXqd

+1

@ user2331875。好吧...對不起我的無知。我忘記了MAC。我會更新答案。 – Marius

相關問題