/** * Transform a string to JobPost object using search by name. * If object with specified name doesn't exist, create it. * * @param string $name * @return JobPost|null */ public function reverseTransform($name) { $name = trim($name); if (strlen($name) == 0) { return null; } $objects = $this->om->getRepository('NetworkStoreBundle:JobPost')->findBy(['name' => $name]); if (count($objects) === 0) { $object = new JobPost(); $object->setName($name)->setPredefined(false); $this->om->persist($object); $this->om->flush(); } else { $object = $objects[0]; } return $object; }