getParent() public method

Get Parent
public getParent ( ) : Category
return Category
 /**
  * 親カテゴリ名を含むカテゴリ名を取得する.
  * @return string
  */
 public function getCategoryFullName()
 {
     if (is_null($this->Category)) {
         return "";
     }
     $fulName = $this->Category->getName();
     // 親カテゴリがない場合はカテゴリ名を返す.
     if (is_null($this->Category->getParent())) {
         return $fulName;
     }
     // 親カテゴリ名を結合する
     $ParentCategory = $this->Category->getParent();
     while (!is_null($ParentCategory)) {
         $fulName = $ParentCategory->getName() . " > " . $fulName;
         $ParentCategory = $ParentCategory->getParent();
     }
     return $fulName;
 }
Ejemplo n.º 2
0
 /**
  * カテゴリを保存する.
  *
  * @param  \Eccube\Entity\Category $Category カテゴリ
  * @return boolean 成功した場合 true
  */
 public function save(\Eccube\Entity\Category $Category)
 {
     $em = $this->getEntityManager();
     $em->getConnection()->beginTransaction();
     try {
         if (!$Category->getId()) {
             $Parent = $Category->getParent();
             if ($Parent) {
                 $rank = $Parent->getRank() - 1;
             } else {
                 $rank = $this->createQueryBuilder('c')->select('MAX(c.rank)')->getQuery()->getSingleScalarResult();
             }
             if (!$rank) {
                 $rank = 0;
             }
             $Category->setRank($rank + 1);
             $Category->setDelFlg(0);
             $em->createQueryBuilder()->update('Eccube\\Entity\\Category', 'c')->set('c.rank', 'c.rank + 1')->where('c.rank > :rank')->setParameter('rank', $rank)->getQuery()->execute();
         }
         $em->persist($Category);
         $em->flush();
         $em->getConnection()->commit();
     } catch (\Exception $e) {
         $em->getConnection()->rollback();
         return false;
     }
     return true;
 }