public function afterSave(Entity $entity) { if (!$entity->isFetched()) { $parentType = $entity->get('parentType'); $parentId = $entity->get('parentId'); if ($parentType && $parentId) { $pdo = $this->getEntityManager()->getPDO(); $sql = "\n\t\t\t\t\tSELECT user_id AS userId \n\t\t\t\t\tFROM subscription\n\t\t\t\t\tWHERE entity_id = " . $pdo->quote($parentId) . " AND entity_type = " . $pdo->quote($parentType); $sth = $pdo->prepare($sql); $sth->execute(); $userIdList = array(); while ($row = $sth->fetch(\PDO::FETCH_ASSOC)) { if ($this->getUser()->id != $row['userId']) { $userIdList[] = $row['userId']; } } if (!empty($userIdList)) { $job = $this->getEntityManager()->getEntity('Job'); $job->set(array('serviceName' => 'Notification', 'method' => 'notifyAboutNoteFromJob', 'data' => json_encode(array('userIdList' => $userIdList, 'noteId' => $entity->id)), 'executeTime' => date('Y-m-d H:i:s'))); $this->getEntityManager()->saveEntity($job); } } } }