コード例 #1
0
 /**
  * @param  \Eccube\Entity\ClassName $ClassName
  * @return bool
  */
 public function delete(\Eccube\Entity\ClassName $ClassName)
 {
     $em = $this->getEntityManager();
     $em->getConnection()->beginTransaction();
     try {
         if ($ClassName->getClassCategories()->count() > 0) {
             throw new \Exception();
         }
         $rank = $ClassName->getRank();
         $em->createQueryBuilder()->update('Eccube\\Entity\\ClassName', 'cn')->set('cn.rank', 'cn.rank - 1')->where('cn.rank > :rank')->setParameter('rank', $rank)->getQuery()->execute();
         $ClassName->setDelFlg(1);
         $em->persist($ClassName);
         $em->flush();
         $em->getConnection()->commit();
     } catch (\Exception $e) {
         $em->getConnection()->rollback();
         return false;
     }
     return true;
 }