private function createMessage(array $message) { $thread = Thread::create(['subject' => $message['subject'], 'cate' => isset($message['cate']) ? $message['cate'] : 'Msg', 'to_all' => $this->toAll ? 1 : 0]); Message::create(['thread_id' => $thread->id, 'user_id' => $message['senderId'], 'body' => $message['body'], 'link' => $message['link']]); // participants if (!$this->toAll && count($this->toUsers)) { //$toUsers = new Collection($this->toUsers); $thread->addParticipants($this->toUsers->pluck('id')->all()); } }
/** * get user`s latest broadcasted message thread id * @param $userId * @return mixed */ private function getBroadcastLatestId() { return Cache::rememberForever('messenger:latestid:user:'******'to_all', 1)->latest()->first(); if (!$latestThread) { $latestThread = Thread::where('to_all', 1)->where('created_at', '<', $this->created_at)->latest()->first(); } return $latestThread ? $latestThread->id : 0; }); }