/** * Creates or updates a preference for a given user. * * @param string $key The key to set * @param string $value The value to set * * @return SystemPreference The user preference */ public function setSystemPreference($key, $value) { $dql = 'SELECT sp FROM PartKeepr\\SystemPreferenceBundle\\Entity\\SystemPreference sp WHERE sp.preferenceKey = :key'; $query = $this->entityManager->createQuery($dql); $query->setParameter('key', $key); try { $systemPreference = $query->getSingleResult(); } catch (\Exception $e) { $systemPreference = new SystemPreference(); $systemPreference->setPreferenceKey($key); $this->entityManager->persist($systemPreference); } $systemPreference->setPreferenceValue($value); $this->entityManager->flush(); return $systemPreference; }