Eccube\Controller\Admin\Product\CsvImportController::createProductCategory PHP Метод

createProductCategory() защищенный Метод

商品カテゴリの削除、登録
protected createProductCategory ( $row, Product $Product, $app, $data )
$Product Eccube\Entity\Product
    protected function createProductCategory($row, Product $Product, $app, $data)
    {
        // カテゴリの削除
        $ProductCategories = $Product->getProductCategories();
        foreach ($ProductCategories as $ProductCategory) {
            $Product->removeProductCategory($ProductCategory);
            $this->em->remove($ProductCategory);
            $this->em->flush($ProductCategory);
        }
        if ($row['商品カテゴリ(ID)'] == '') {
            // 入力されていなければ削除のみ
            return;
        }
        // カテゴリの登録
        $categories = explode(',', $row['商品カテゴリ(ID)']);
        $rank = 1;
        foreach ($categories as $category) {
            if (preg_match('/^\\d+$/', $category)) {
                $Category = $app['eccube.repository.category']->find($category);
                if (!$Category) {
                    $this->addErrors($data->key() + 1 . '行目の商品カテゴリ(ID)「' . $category . '」が存在しません。');
                } else {
                    $ProductCategory = new ProductCategory();
                    $ProductCategory->setProductId($Product->getId());
                    $ProductCategory->setCategoryId($Category->getId());
                    $ProductCategory->setProduct($Product);
                    $ProductCategory->setCategory($Category);
                    $ProductCategory->setRank($rank);
                    $Product->addProductCategory($ProductCategory);
                    $rank++;
                    $this->em->persist($ProductCategory);
                }
            } else {
                $this->addErrors($data->key() + 1 . '行目の商品カテゴリ(ID)「' . $category . '」が存在しません。');
            }
        }
    }