Model Can';t覆盖Magento中的核心模型

Model Can';t覆盖Magento中的核心模型,model,magento,overriding,Model,Magento,Overriding,我试图覆盖Mage\u目录、模型、图层、过滤器、类别。 在system.log中,我收到一条警告: 警告:include(Mycomp\u Catalog\u Model\u Layer\u Filter\u Category.php):无法打开流:第93行的/var/www/magento/includes/src/Varien\u Autoload.php中没有此类文件或目录 警告:include():无法在第93行/var/www/magento/includes/Varien\u Aut

我试图覆盖Mage\u目录、模型、图层、过滤器、类别。 在system.log中,我收到一条警告:

警告:include(Mycomp\u Catalog\u Model\u Layer\u Filter\u Category.php):无法打开流:第93行的/var/www/magento/includes/src/Varien\u Autoload.php中没有此类文件或目录 警告:include():无法在第93行/var/www/magento/includes/Varien\u Autoload.php中打开“Mycomp\u Catalog\u Model\u Layer\u Filter\u Category.php”以包含(include\u path='/var/www/magento/includes/src:.:/usr/share/php:/usr/share/pear')

我做错了什么

mycop/Catalog/etc/config.xml:

<?xml version="1.0"?>
<config>
<modules>
    <Mycomp_Catalog>
        <version>0.1.0</version>
    </Mycomp_Catalog>
</modules>
<global>
    <models>
        <catalog>
            <rewrite>                    
                <layer_filter_category>Mycomp_Catalog_Model_Layer_Filter_Category</layer_filter_category>
            </rewrite>
        </catalog>
    </models>
</global>
app/etc/modules/mycop_All.xml:

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

地方的
真的

这里没有显示,那么您是否为Mycomp_目录模块设置了模型?修改您的“全局”部分,如下所示:

<global>
    <models>
        <catalog>
            <rewrite>                    
                <layer_filter_category>Mycomp_Catalog_Model_Layer_Filter_Category</layer_filter_category>
            </rewrite>
        </catalog>
        <mycompcatalog>
            <class>Mycomp_Catalog_Model</class>
        </mycompcatalog>
    </models>
</global>

Mycomp\u目录\u模型\u图层\u过滤器\u类别
Mycomp\u目录\u模型
这是我唯一的猜测。希望有帮助

谢谢,
Joe

通过论坛调试这类问题并不十分困难。这是一个具有工作覆盖的模块(至少,它在我安装的1.4 CE上工作),将其与您的模块进行比较,看看有什么不同,或者尝试在您的安装中安装,如果它不工作,您知道其他地方有问题


编辑以反映您不希望在groupname(mycomp_目录)中使用下划线,因为这会混淆Magento。否则,请注意。组名中的下划线是可以的,无论如何重写都不需要。是的,请注意我所说的关于下划线的内容,我用一些测试代码得出了错误的结论。为什么我需要这个部分?我没有在关于覆盖核心模型的博客文章中看到:谢谢!!由于我没有定义mycompcatalog类,所以它总是找不到文件…Magento 1.9.10谢谢您的帮助。我尝试了你的模块,我得到了同样的错误。当我移除该部件时,它可以正常工作。您的模块可以重新安装。我看到你评论了这个部分,所以它是不需要的。我仍然不明白为什么你的模块在我之前的安装中不能工作。谢谢。我想可能是这样的(这就是我发布工作模块的原因)。你上一期也是1。安装了一个自定义模块,该模块可能会干扰或2。有一个核心或库文件被更改,这会干扰事情。使用diff工具比较这两个来源可以帮助您隔离发生的情况。自动加载尝试包含的文件(include(mycop\u Catalog\u Model\u Layer\u Filter\u Category.php)表明自动加载代码可能已被更改(include(mycop/Catalog/Model/Layer/Filter/Category.php将为“正常”)
<global>
    <models>
        <catalog>
            <rewrite>                    
                <layer_filter_category>Mycomp_Catalog_Model_Layer_Filter_Category</layer_filter_category>
            </rewrite>
        </catalog>
        <mycompcatalog>
            <class>Mycomp_Catalog_Model</class>
        </mycompcatalog>
    </models>
</global>