/** * @param Job $job * @param User $user * @param array $friends * @return array */ public function insertNew(Job $job, User $user, $friends) { $result = array(); $company = $job->getCompany(); /** @var FacebookUser $friend */ foreach ($friends as $friend) { $jobSkill = array(); $idJobMatch = $job->getId() . '-' . $user->getId() . '-' . $friend->getId(); /** @var Skill $skill */ foreach ($job->getSkills() as $skill) { $jobSkill[] = array('id' => $skill->getId(), 'name' => $skill->getName()); } $jobMatch = new JobMatch(); $jobMatch->setId($idJobMatch); $jobMatch->setJobId($job->getId()); $jobMatch->setJob(array('id' => $job->getId(), 'name' => $job->getName(), 'skill' => $jobSkill)); if (!empty($company)) { $jobMatch->setCompanyId($company->getId()); $jobMatch->setCompany(array('id' => $company->getId(), 'name' => $company->getName())); } $jobMatch->setUser1Id($user->getId()); $jobMatch->setUser1(array('id' => $user->getId(), 'name' => $user->getName(), 'avatar' => $user->getAvatar(), 'email' => $user->getEmail())); $jobMatch->setUser2Id($friend->getId()); $jobMatch->setUser2(array('id' => $friend->getId(), 'name' => $friend->getName(), 'email' => $friend->getEmail())); try { $this->entityManager->persist($jobMatch); $this->entityManager->flush(); } catch (\Exception $ex) { } } return $result; }