0

こんにちは私はカテゴリの拡張に取り組んでいます。カテゴリと製品に関する問題に直面しています。同じ製品で2つ以上のカテゴリがあります。新しいカテゴリを作成した後、カテゴリ1の下に存在する製品を割り当てたいと思います(カテゴリ1とカテゴリ2は同じ製品)私のコードが原因でcategory2から製品が削除されます私のコードは:

  $collection = $category->getProductCollection();
        $collection->addAttributeToSelect('*');

        foreach ($collection as $product) {
                 $categories_pd = $product->getCategoryIds();                              
                    $product->setCategoryIds(array($new_cateid , $category1_id));
                    $product->save();
        }

setcatgoryIds関数により、他のエントリが削除されることを知っています。この問題を修正するための正しい関数またはロジックを誰かが知っていますか。

4

1 に答える 1

0

これにより$categories_pd = $product->getCategoryIds();、既存のすべてのエントリを配列として取得できます。

ここに新しいカテゴリを追加するだけです

$categories_pd[]=$newid1;$categories_pd[]=$newid2...

次に、$categories_pd必要なカテゴリがすべて揃っているので、設定するだけです

$product->setCategoryIds($categories_pd);
                $product->save();
于 2013-03-22T07:43:19.757 に答える