- Модуль: 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);
}
}