我正在建立聊天弹出窗口,一个用户将在其中发起与另一个用户的对话。在我的 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 关注
- 212 浏览
添加回答
举报
0/150
提交
取消