• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/fields/validators/uniquevalidator.php
  • Класс: BitrixMainORMFieldsValidatorsUniqueValidator
  • Вызов: UniqueValidator::validate
public function validate($value, $primary, array $row, ORMFieldsField $field)
{
	$entity = $field->getEntity();
	$primaryNames = $entity->getPrimaryArray();

	$query = new Query($entity);
	$query->setSelect($primaryNames);
	$query->setFilter(array('='.$field->getName() => $value));
	$query->setLimit(2);
	$result = $query->exec();

	while ($existing = $result->fetch())
	{
		// check primary
		foreach ($existing as $k => $v)
		{
			if (!isset($primary[$k]) || $primary[$k] != $existing[$k])
			{
				return $this->getErrorMessage($value, $field);
			}
		}
	}

	return true;
}