Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 我的system.log文件中反复出现奇怪的错误_Magento - Fatal编程技术网

Magento 我的system.log文件中反复出现奇怪的错误

Magento 我的system.log文件中反复出现奇怪的错误,magento,Magento,在Magento Enterprise 1.8中,我一次又一次地遇到一个特定的错误,我想知道是否有其他人遇到过这个问题,以及他们是如何解决的 错误是: 无效的块类型:Mage\u CatalogInventory\u block\u Qtyincrements 我在那里也看到了很多: 无效的块类型:Mage\u Navadmin\u block\u Navadmin 我只在Mage\u Core\u Model\u布局::\u getBlockInstance()中找到对“无效块类型”的引用 该

在Magento Enterprise 1.8中,我一次又一次地遇到一个特定的错误,我想知道是否有其他人遇到过这个问题,以及他们是如何解决的

错误是:

无效的块类型:Mage\u CatalogInventory\u block\u Qtyincrements

我在那里也看到了很多:

无效的块类型:Mage\u Navadmin\u block\u Navadmin


我只在
Mage\u Core\u Model\u布局::\u getBlockInstance()
中找到对“无效块类型”的引用

该错误可能是由于某个块没有继承自
Mage\u Core\u block\u Abstract
,或者由于缺少适当的
config.xml
文件,该块无法以其短格式加载

  • 这些类是否确实存在于您的系统中
  • 哪些元素在
    layout/*.xml
    文件中使用它们
  • Mage/{Navadmin,CatalogInventory}/etc/config.xml
    中是否有语法错误之类的问题?(配置文件位置是一个有根据的猜测)

我只在
Mage\u Core\u Model\u布局中找到对“无效块类型”的引用::\u getBlockInstance()

该错误可能是由于某个块没有继承自
Mage\u Core\u block\u Abstract
,或者由于缺少适当的
config.xml
文件,该块无法以其短格式加载

  • 这些类是否确实存在于您的系统中
  • 哪些元素在
    layout/*.xml
    文件中使用它们
  • Mage/{Navadmin,CatalogInventory}/etc/config.xml
    中是否有语法错误之类的问题?(配置文件位置是一个有根据的猜测)

此页面上有一些修补程序文件修复了Qtyincrements消息:

此页面上有一些修补程序文件修复了Qtyincrements消息:

尝试实例化块对象时,如果Magento找不到类,它将记录错误,不渲染块,然后继续

这种情况在整个代码库中的几个地方都会发生,但最有可能发生在

File: app/code/core/Mage/Core/Model/Layout.php
protected function _getBlockInstance($block, array $attributes=array())
{
    if (is_string($block)) {
        if (strpos($block, '/')!==false) {
            if (!$block = Mage::getConfig()->getBlockClassName($block)) {
                Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
            }
        }
        if (class_exists($block, false) || mageFindClassFile($block)) {
            $block = new $block($attributes);
        }
    }
    if (!$block instanceof Mage_Core_Block_Abstract) {
        Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
    }
    return $block;
}
//...
public function getBlockSingleton($type)
{
    if (!isset($this->_helpers[$type])) {
        $className = Mage::getConfig()->getBlockClassName($type);
        if (!$className) {
            Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $type));
        }

        $helper = new $className();
        if ($helper) {
            if ($helper instanceof Mage_Core_Block_Abstract) {
                $helper->setLayout($this);
            }
            $this->_helpers[$type] = $helper;
        }
    }
    return $this->_helpers[$type];
}
那么,你的两个具体错误。Magento无法实例化

Mage_CatalogInventory_Block_Qtyincrements
Mage_Navadmin_Block_Navadmin
这可能是因为在1.8附带的布局中,核心代码试图使用一个块来实例化

<block type="cataloginventory/qtyincrements" name="product.info.extrahint" as="extrahint" template="cataloginventory/qtyincrements.phtml"/>
Enterprise 1.8中没有附带的Navadmin模块。基于块名,这意味着可能有一些块XML看起来像

<block type="navadmin/navadmin"
引用块的模板或XML布局文件可能留在您的系统上,但在系统中定义块的实际类文件除外

app/code/community/Mage/Navadmin/Block/Navadmin.php

他失踪了

尝试实例化块对象时,如果Magento找不到该类,它将记录错误,而不是渲染块,然后继续

这种情况在整个代码库中的几个地方都会发生,但最有可能发生在

File: app/code/core/Mage/Core/Model/Layout.php
protected function _getBlockInstance($block, array $attributes=array())
{
    if (is_string($block)) {
        if (strpos($block, '/')!==false) {
            if (!$block = Mage::getConfig()->getBlockClassName($block)) {
                Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
            }
        }
        if (class_exists($block, false) || mageFindClassFile($block)) {
            $block = new $block($attributes);
        }
    }
    if (!$block instanceof Mage_Core_Block_Abstract) {
        Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $block));
    }
    return $block;
}
//...
public function getBlockSingleton($type)
{
    if (!isset($this->_helpers[$type])) {
        $className = Mage::getConfig()->getBlockClassName($type);
        if (!$className) {
            Mage::throwException(Mage::helper('core')->__('Invalid block type: %s', $type));
        }

        $helper = new $className();
        if ($helper) {
            if ($helper instanceof Mage_Core_Block_Abstract) {
                $helper->setLayout($this);
            }
            $this->_helpers[$type] = $helper;
        }
    }
    return $this->_helpers[$type];
}
那么,你的两个具体错误。Magento无法实例化

Mage_CatalogInventory_Block_Qtyincrements
Mage_Navadmin_Block_Navadmin
这可能是因为在1.8附带的布局中,核心代码试图使用一个块来实例化

<block type="cataloginventory/qtyincrements" name="product.info.extrahint" as="extrahint" template="cataloginventory/qtyincrements.phtml"/>
Enterprise 1.8中没有附带的Navadmin模块。基于块名,这意味着可能有一些块XML看起来像

<block type="navadmin/navadmin"
引用块的模板或XML布局文件可能留在您的系统上,但在系统中定义块的实际类文件除外

app/code/community/Mage/Navadmin/Block/Navadmin.php

他失踪了

线程+1,但我不会盲目地将这些补丁添加到1.8企业版。该线程正在处理1.4.1CE版本,这两个产品是独立的分支。是的,我注意到了。由于Magento Enterprise和Community如此不同,我很犹豫是否要将社区文件推入Enterprise。我可能不得不在这个问题上尝试一下这种支持。我会发布我得到的任何发现,以防其他人有此问题。他们可能已经在1.9中修复了它,特别是因为补丁来自他们自己的员工。@clcokworkgeek缺少的类在1.9中,所以Mage_CatalogInventory_Block_Qtyincrements问题应该得到修复。不过Navadmin是一个自定义模块,所以升级(或补丁)无法解决这个问题。线程+1,但我不会盲目地将这些补丁添加到1.8企业版。该线程正在处理1.4.1CE版本,这两个产品是独立的分支。是的,我注意到了。由于Magento Enterprise和Community如此不同,我很犹豫是否要将社区文件推入Enterprise。我可能不得不在这个问题上尝试一下这种支持。我会发布我得到的任何发现,以防其他人有此问题。他们可能已经在1.9中修复了它,特别是因为补丁来自他们自己的员工。@clcokworkgeek缺少的类在1.9中,所以Mage_CatalogInventory_Block_Qtyincrements问题应该得到修复。不过,Navadmin是一个自定义模块,因此升级(或补丁)无法解决此问题。Magento为我们提供了此问题的补丁,您对其他扩展的看法是正确的。Magento为我们提供了此问题的补丁,您对其他扩展的看法是正确的。