我正在建立聊天彈出窗口,一個用戶將在其中發起與另一個用戶的對話。在我的 initietchat 函數中,我有以下錯誤調用未定義的方法 stdClass::save()。查看代碼并找到THIS SAVE FUNCTION ==>>拋出錯誤的 save() 函數。如果兩個用戶已經發起對話,則不會發生此錯誤。public function actionInitiatechat() { if (isset($_POST)){ //$message = Myclass::checkPostvalue($_POST['message']) ? $_POST['message'] : ""; $senderId = Myclass::checkPostvalue($_POST['sender']) ? $_POST['sender'] : ""; $receiverId = Myclass::checkPostvalue($_POST['receiver']) ? $_POST['receiver'] : ""; $messageType = Myclass::checkPostvalue($_POST['messageType']) ? $_POST['messageType'] : ""; $sourceId = Myclass::checkPostvalue($_POST['sourceId']) ? $_POST['sourceId'] : ""; $timeUpdate = time(); $message = $_POST['message']; $Products = Products::model()->findByPk($sourceId); if(isset($Products) && $Products->approvedStatus == 0) { echo "error"; } else { $criteria = new CDbCriteria; $criteria->condition = "(user1 = '$senderId' AND user2 = '$receiverId') OR (user1 = '$receiverId' AND user2 = '$senderId')"; $chatModel = Chats::model()->find($criteria); $encodeMsg = urlencode($message); if (empty($chatModel)){ $newChat = new Chats(); $newChat->user1 = $senderId; $newChat->user2 = $receiverId; $newChat->lastMessage = $encodeMsg; $newChat->lastToRead = $receiverId; $newChat->lastContacted = $timeUpdate; $newChat->save(); $criteria = new CDbCriteria; $criteria->condition = "(user1 = '$senderId' AND user2 = '$receiverId') OR (user1 = '$receiverId' AND user2 = '$senderId')";
1 回答

慕少森
TA貢獻2019條經驗 獲得超9個贊
下面的語句大概是返回一個“裸”類型的對象stdClass
,它沒有定義save()
方法,因此你的錯誤。
$chatModel = Chats::model()->find($criteria);
在此語句之后立即運行var_dump($chatModel);
并查看您獲得的對象類型。
- 1 回答
- 0 關注
- 203 瀏覽
添加回答
舉報
0/150
提交
取消