• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/objectify/collection.php
  • Класс: BitrixMainORMObjectifyCollection
  • Вызов: Collection::sysNormalizePrimary
protected function sysNormalizePrimary($primary)
{
	// normalize primary
	$primaryNames = $this->_entity->getPrimaryArray();

	if (!is_array($primary))
	{
		if (count($primaryNames) > 1)
		{
			throw new ArgumentException(sprintf(
				'Only one value of primary found, when entity %s has %s primary keys',
				$this->_entity->getDataClass(), count($primaryNames)
			));
		}

		$primary = [$primaryNames[0] => $primary];
	}

	// check in $this->objects
	$normalizedPrimary = [];

	foreach ($primaryNames as $primaryName)
	{
		/** @var ScalarField $field */
		$field = $this->_entity->getField($primaryName);
		$normalizedPrimary[$primaryName] = $field->cast($primary[$primaryName]);
	}

	return $normalizedPrimary;
}