/** * 同时删除相关表里面的数据 * $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; } }
/** * 同时删除相关表里面的数据 * $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; } }