Eccube\Repository\CategoryRepository::delete PHP Метод

delete() публичный Метод

カテゴリを削除する.
public delete ( Category $Category ) : boolean
$Category Eccube\Entity\Category 削除対象のカテゴリ
Результат boolean 成功した場合 true, 子カテゴリが存在する場合, 商品カテゴリが紐づいている場合は false
    public function delete(\Eccube\Entity\Category $Category)
    {
        $em = $this->getEntityManager();
        $em->getConnection()->beginTransaction();
        try {
            if ($Category->getChildren()->count() > 0 || $Category->getProductCategories()->count() > 0) {
                throw new \Exception();
            }
            $rank = $Category->getRank();
            $em->createQueryBuilder()->update('Eccube\\Entity\\Category', 'c')->set('c.rank', 'c.rank - 1')->where('c.rank > :rank')->setParameter('rank', $rank)->getQuery()->execute();
            $Category->setDelFlg(1);
            $em->persist($Category);
            $em->flush();
            $em->getConnection()->commit();
        } catch (\Exception $e) {
            $em->getConnection()->rollback();
            return false;
        }
        return true;
    }