/**
  * 同时删除相关表里面的数据
  * $noNeedTrans表示不需要事务控制
  * 返回值:true/false
  */
 public function deleteById($id, $noNeedTrans = false)
 {
     $map['id'] = $id;
     $pariseList = $this->getPraiseList($id);
     $commentList = $this->getCommentList($id);
     $pariseTable = new PraiseMoodModel();
     $commentTable = new CommentModel();
     if (!$noNeedTrans) {
         $this->startTrans();
     }
     while (list($key, $parise) = each($pariseList)) {
         if ($pariseTable->deleteByMoodId($id, true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     while (list($key, $comment) = each($commentList)) {
         if ($commentTable->deleteById($comment['id'], true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     if ($this->where($map)->delete() === false) {
         if (!$noNeedTrans) {
             $this->rollback();
         }
         return false;
     }
     if (!$noNeedTrans) {
         return $this->commit();
     } else {
         return true;
     }
 }
Esempio n. 2
0
 /**
  * 同时删除相关表里面的数据
  * $noNeedTrans表示不需要事务控制
  * 返回值:返回false表示删除失败,返回true表示删除成功
  */
 public function deleteById($id, $noNeedTrans = false)
 {
     $map['id'] = $id;
     $moodList = $this->getRelatedMoodById($id);
     $moodTable = new MoodListModel();
     if (!$noNeedTrans) {
         $this->startTrans();
     }
     while (list($key, $mood) = each($moodList)) {
         if ($moodTable->deleteById($mood['id'], true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     $praiseList = $this->getRelatedPraiseById($id);
     $praiseTable = new PraiseMoodModel();
     while (list($key, $praise) = each($praiseList)) {
         if ($praiseTable->deleteByUserId($praise['user_id'], true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     $commentList = $this->getRelatedCommentById($id);
     $commentTable = new CommentModel();
     while (list($key, $comment) = each($commentList)) {
         if ($commentTable->deleteById($comment['id'], true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     $letterList = $this->getRelatedLetterById($id);
     $letterTable = new LetterListModel();
     while (list($key, $letter) = each($letterList)) {
         if ($letterTable->deleteById($letter['id'], true) === false) {
             if (!$noNeedTrans) {
                 $this->rollback();
             }
             return false;
         }
     }
     if ($this->where($map)->delete() === false) {
         if (!$noNeedTrans) {
             $this->rollback();
         }
         return false;
     }
     if (!$noNeedTrans) {
         return $this->commit();
     } else {
         return true;
     }
 }