Model Can';t覆盖Magento中的核心模型
我试图覆盖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: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
<?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>