checkLogin_ajax()) { return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']); } $user_id = $this->session->get('useremail'); $ew_word_pid = $this->request->getPost('ew_word_pid'); $favoriteWordModel = new FavoriteWordModel(); // 이미 관심단어로 추가된 경우 중복 추가 방지 if ($favoriteWordModel->isFavorite($user_id, $ew_word_pid)) { return $this->response->setJSON(['status' => 'error', 'message' => 'Word already in favorites.']); } $data = [ 'user_id' => $user_id, 'ew_word_pid' => $ew_word_pid ]; if ($favoriteWordModel->insert($data)) { return $this->response->setJSON(['status' => 'success', 'message' => 'Word added to favorites.']); } else { return $this->response->setJSON(['status' => 'error', 'message' => 'Failed to add word to favorites.']); } } public function removeFavorite() { if (!$this->checkLogin_ajax()) { return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']); } $user_id = $this->session->get('useremail'); $ew_word_pid = $this->request->getPost('ew_word_pid'); $favoriteWordModel = new FavoriteWordModel(); if ($favoriteWordModel->removeFavorite($user_id, $ew_word_pid)) { return $this->response->setJSON(['status' => 'success', 'message' => 'Word removed from favorites.']); } else { return $this->response->setJSON(['status' => 'error', 'message' => 'Failed to remove word from favorites.']); } } public function getFavoriteWords() { if (!$this->checkLogin_ajax()) { return $this->response->setJSON(['status' => 'error', 'message' => 'User not logged in.']); } $user_id = $this->session->get('useremail'); $favoriteWordModel = new FavoriteWordModel(); $ewWordModel = new EWWordModel(); $favoriteWords = $favoriteWordModel->where('user_id', $user_id)->findAll(); $favoriteWordDetails = []; foreach ($favoriteWords as $favorite) { $wordDetail = $ewWordModel->find($favorite['ew_word_pid']); if ($wordDetail) { $favoriteWordDetails[] = $wordDetail; } } return view('favorite_words', ['favoriteWords' => $favoriteWordDetails]); } }