• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/data/datamanager.php
  • Класс: Bitrix\Main\ORM\Data\DataManager
  • Вызов: DataManager::validatePrimary
static function validatePrimary($primary)
{
	$entity = static::getEntity();
	if (is_array($primary))
	{
		if(empty($primary))
		{
			throw new Main\ArgumentException(sprintf(
				'Empty primary found when trying to query %s row.', $entity->getName()
			));
		}

		$entity_primary = $entity->getPrimaryArray();

		foreach (array_keys($primary) as $key)
		{
			if (!in_array($key, $entity_primary, true))
			{
				throw new Main\ArgumentException(sprintf(
					'Unknown primary `%s` found when trying to query %s row.',
					$key, $entity->getName()
				));
			}
		}
	}
	else
	{
		throw new Main\ArgumentException(sprintf(
			'Unknown type of primary "%s" found when trying to query %s row.', gettype($primary), $entity->getName()
		));
	}

	// primary values validation
	foreach ($primary as $key => $value)
	{
		if (!is_scalar($value) && !($value instanceof Main\Type\Date))
		{
			throw new Main\ArgumentException(sprintf(
				'Unknown value type "%s" for primary "%s" found when trying to query %s row.',
				gettype($value), $key, $entity->getName()
			));
		}
	}
}