• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/data/datamanager.php
  • Класс: Bitrix\Main\ORM\Data\DataManager
  • Вызов: DataManager::normalizePrimary
static function normalizePrimary(&$primary, $data = array())
{
	$entity = static::getEntity();
	$entity_primary = $entity->getPrimaryArray();

	if ($primary === null)
	{
		$primary = array();

		// extract primary from data array
		foreach ($entity_primary as $key)
		{
			/** @var ScalarField $field  */
			$field = $entity->getField($key);
			if ($field->isAutocomplete())
			{
				continue;
			}

			if (!isset($data[$key]))
			{
				throw new Main\ArgumentException(sprintf(
					'Primary `%s` was not found when trying to query %s row.', $key, $entity->getName()
				));
			}

			$primary[$key] = $data[$key];
		}
	}
	elseif (is_scalar($primary))
	{
		if (count($entity_primary) > 1)
		{
			throw new Main\ArgumentException(sprintf(
				'Require multi primary {`%s`}, but one scalar value "%s" found when trying to query %s row.',
				join('`, `', $entity_primary), $primary, $entity->getName()
			));
		}

		$primary = array($entity_primary[0] => $primary);
	}
}