Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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
Php Magento:基本导入中出现致命错误_Php_Magento - Fatal编程技术网

Php Magento:基本导入中出现致命错误

Php Magento:基本导入中出现致命错误,php,magento,Php,Magento,我正在使用系统>导入/导出>导入下的magento默认产品导入功能 当我上传文件并单击CheckData按钮时,页面调用ajax并返回一个错误 Fatal error: Call to a member function getName() on a non-object in /var/www/html/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php on line 390 我在核心文件中没有任何定制 我所做的:

我正在使用系统>导入/导出>导入下的magento默认产品导入功能

当我上传文件并单击CheckData按钮时,页面调用ajax并返回一个错误

Fatal error: Call to a member function getName() on a non-object in /var/www/html/app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php on line 390
我在核心文件中没有任何定制

我所做的: 1) 我已经用一个新的模块替换了整个ImportExport模块 2) 我还发现了一些类似的问题,并且按照他们的解决方案所说的那样做,可能存在索引问题,所以我截断了所有的平面表,并重新索引了所有的平面表


谢谢

根据1.7.1版,您有此错误
\u initCategories
功能

protected function _initCategories()
    {
        $collection = Mage::getResourceModel('catalog/category_collection')->addNameToResult();
        /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
        foreach ($collection as $category) {
            $structure = explode('/', $category->getPath());
            $pathSize  = count($structure);
            if ($pathSize > 1) {
                $path = array();
                for ($i = 1; $i < $pathSize; $i++) {
                    $path[] = $collection->getItemById($structure[$i])->getName();
                }
                $rootCategoryName = array_shift($path);
                if (!isset($this->_categoriesWithRoots[$rootCategoryName])) {
                    $this->_categoriesWithRoots[$rootCategoryName] = array();
                }
                $index = implode('/', $path);
                $this->_categoriesWithRoots[$rootCategoryName][$index] = $category->getId();
                if ($pathSize > 2) {
                    $this->_categories[$index] = $category->getId();
                }
            }
        }
        return $this;
    }
protectedfunction\u initCategories()
{
$collection=Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/*@var$collection Mage\u Catalog\u Model\u Resource\u Eav\u Mysql4\u Category\u collection*/
foreach($collection作为$category){
$structure=explode('/',$category->getPath());
$pathSize=count($structure);
如果($pathSize>1){
$path=array();
对于($i=1;$i<$pathSize;$i++){
$path[]=$collection->getItemById($structure[$i])->getName();
}
$rootCategoryName=array\u shift($path);
如果(!isset($this->_categoriesWithRoots[$rootCategoryName])){
$this->_categoriesWithRoots[$rootCategoryName]=array();
}
$index=内爆(“/”,$path);
$this->_categorieswithroot[$rootCategoryName][$index]=$category->getId();
如果($pathSize>2){
$this->_categories[$index]=$category->getId();
}
}
}
退还$this;
}
您应该在
$structure[$i]
处有一个有效的实体Id。即在
目录\类别\实体
表中,应该有一个有效的
实体id


我在1.6.2版中看到了类似的问题。

根据1.7.1版,您有此错误
\u initCategories
函数

protected function _initCategories()
    {
        $collection = Mage::getResourceModel('catalog/category_collection')->addNameToResult();
        /* @var $collection Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection */
        foreach ($collection as $category) {
            $structure = explode('/', $category->getPath());
            $pathSize  = count($structure);
            if ($pathSize > 1) {
                $path = array();
                for ($i = 1; $i < $pathSize; $i++) {
                    $path[] = $collection->getItemById($structure[$i])->getName();
                }
                $rootCategoryName = array_shift($path);
                if (!isset($this->_categoriesWithRoots[$rootCategoryName])) {
                    $this->_categoriesWithRoots[$rootCategoryName] = array();
                }
                $index = implode('/', $path);
                $this->_categoriesWithRoots[$rootCategoryName][$index] = $category->getId();
                if ($pathSize > 2) {
                    $this->_categories[$index] = $category->getId();
                }
            }
        }
        return $this;
    }
protectedfunction\u initCategories()
{
$collection=Mage::getResourceModel('catalog/category_collection')->addNameToResult();
/*@var$collection Mage\u Catalog\u Model\u Resource\u Eav\u Mysql4\u Category\u collection*/
foreach($collection作为$category){
$structure=explode('/',$category->getPath());
$pathSize=count($structure);
如果($pathSize>1){
$path=array();
对于($i=1;$i<$pathSize;$i++){
$path[]=$collection->getItemById($structure[$i])->getName();
}
$rootCategoryName=array\u shift($path);
如果(!isset($this->_categoriesWithRoots[$rootCategoryName])){
$this->_categoriesWithRoots[$rootCategoryName]=array();
}
$index=内爆(“/”,$path);
$this->_categorieswithroot[$rootCategoryName][$index]=$category->getId();
如果($pathSize>2){
$this->_categories[$index]=$category->getId();
}
}
}
退还$this;
}
您应该在
$structure[$i]
处有一个有效的实体Id。即在
目录\类别\实体
表中,应该有一个有效的
实体id


我在1.6.2版本中也看到了类似的问题。

我知道现在已经太迟了,但对于那些来到这里寻求解决方案的人来说。以下是备选方案:-

在受函数保护的函数_initCategories()中,请找到以下代码:-

$path[] = $collection->getItemById($structure[$i])->getName();
只需对其进行注释并将以下代码放在此处:-

$category123 = Mage::getModel('catalog/category')->load($structure[$i]);
$path[] = $category123->getName();

这对你会有用的。

我知道现在已经太晚了,但对于那些来到这里寻求解决方案的人来说。以下是备选方案:-

在受函数保护的函数_initCategories()中,请找到以下代码:-

$path[] = $collection->getItemById($structure[$i])->getName();
只需对其进行注释并将以下代码放在此处:-

$category123 = Mage::getModel('catalog/category')->load($structure[$i]);
$path[] = $category123->getName();

它对您有效。

您有有效的产品类别吗?@Renku是的,我有有效的类别。。您有有效的产品类别吗?@Renku是的,我有有效的类别。。我正在使用已创建的类别。。。这意味着它具有有效的实体id idreindex您的数据库,并查看是否有表
目录\u类别\u平面\u存储
。然后尝试导入。感谢Renku为我指出了正确的方向,$structure[$i]索引包含类别id,但对于某些索引,我是空白的,我已添加了一个条件,现在可以了,但无法理解为什么某些索引没有类别id:-(我正在使用已创建的类别…这意味着它具有有效的实体id idreindex您的db,并查看是否有表
目录\u类别\u平面\u存储区
。然后尝试导入。感谢Renku为我指出了正确的方向,实际上是$structure[$I]索引包含类别id,但对于某些索引,我是空白的,我添加了一个条件,现在可以了,但不知道为什么某些索引没有类别id..:-(