request->getPost(); $user = $this->getLoginUser(); $consult = $this->checkConsult($id); $validator = new ConsultValidator(); $validator->checkReplyPriv($consult, $user); $answer = $validator->checkAnswer($post['answer']); $consult->replier_id = $user->id; $consult->reply_time = time(); $consult->answer = $answer; $consult->update(); if ($consult->reply_time == 0) { $this->handleReplyNotice($consult); } $this->eventsManager->fire('Consult:afterReply', $this, $consult); return $consult; } protected function handleReplyNotice(ConsultModel $consult) { $notice = new ConsultReplyNotice(); $notice->createTask($consult); } }