Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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 以编程方式从产品中删除类别_Php_Mysql_Magento_Erp - Fatal编程技术网

Php 以编程方式从产品中删除类别

Php 以编程方式从产品中删除类别,php,mysql,magento,erp,Php,Mysql,Magento,Erp,我试图从产品中删除一个类别,但没有成功。 它仍然是该类别的产品 这是我正在使用的代码: $categories = array(); $categories[] = $this->erp['mastercat']; if(isset($this->erp['article']['all_categories'])){ if(is_array($this->erp['article']['all_categories']) &&am

我试图从产品中删除一个类别,但没有成功。 它仍然是该类别的产品

这是我正在使用的代码:

    $categories = array();
    $categories[] = $this->erp['mastercat'];
    if(isset($this->erp['article']['all_categories'])){
        if(is_array($this->erp['article']['all_categories']) && count($this->erp['shop']['all_categories'])>0){
            foreach($this->erp['article']['all_categories'] as $category){
                if(!in_array($category,$categories)){
                    $categories[] = $category;
                }
            }
        }else if(!empty($this->erp['article']['all_categories'])){
            if(!in_array($this->erp['article']['all_categories'], $categories)){
                $categories[] = $this->erp['article']['all_categories'];
            }
        }
    }
    $this->product->setCategoryIds($categories);
我使用的是一个空白数组,只把我需要的类别放进去


我不明白为什么选择了以前选择的类别和新类别(我在erp中将其从一个类别移动到另一个类别)。

您还需要保存您的产品:

$this->product->save();

来自科尤尔·沙阿的链接帮助了我。 我在理解系统如何保存类别时遇到了问题。 如果要从列表中删除一个类别,则需要加载所有类别并取消设置不再需要的类别,然后使用自己的键添加新类别。 然后它就起作用了。 ^^

非常感谢你的帮助