public function findOrCreateChatForUser($rid) { $chat_user = new ChatUser(); $chat_user->setRid($rid); $chat = $this->getUncompletedChat(); if ($chat) { $this->addLog('Find chat: ' . $chat->getId()); $chat->setIsCompleted(true); } else { $this->addLog('Create new chat.'); $chat = new Chat(); } $chat_user->setChat($chat); $chat->addUser($chat_user); $this->om->persist($chat); $this->om->persist($chat_user); $this->om->flush(); return $chat; }