示例#1
0
 /**
  * @param ConfigurationEntry $entry
  *
  * @return bool
  */
 public function isValidForSaving(ConfigurationEntry $entry)
 {
     $query = null;
     if ($this->semanticConfig['owner_entity'] && $entry->getOwner()) {
         $query = sprintf('SELECT e.id FROM %s e WHERE e.name = ?0 AND e.owner = ?1', get_class($entry));
         $query = $this->em->createQuery($query);
         $query->setParameters([$entry->getName(), $entry->getOwner()]);
     } else {
         $query = sprintf('SELECT e.id FROM %s e WHERE e.name = ?0', get_class($entry));
         $query = $this->em->createQuery($query);
         $query->setParameter(0, $entry->getName());
     }
     $result = $query->getArrayResult();
     $isNameInUse = count($result) > 0;
     if ($isNameInUse) {
         // if name is already in use then we will allow to save configuration property if it represents
         // the same records as in database
         return $entry->getId() == $result[0]['id'];
     }
     return true;
 }