• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Dto/Validator/ScalarCollectionField.php
  • Класс: Bitrix\Crm\Dto\Validator\ScalarCollectionField
  • Вызов: ScalarCollectionField::validate
public function validate(array $fields): Result
{
	$result = new Result();

	if (array_key_exists($this->fieldToCheck, $fields))
	{
		if (!is_array($fields[$this->fieldToCheck]))
		{
			$result->addError($this->getWrongFieldError($this->fieldToCheck, $this->dto->getName()));
		}
		else
		{
			foreach ($fields[$this->fieldToCheck] as $fieldKey => $fieldValue)
			{
				if ($keyValidationError = $this->getKeyValidationError($fieldKey, $this->dto->getName()))
				{
					$result->addError($keyValidationError);
				}
				if (!is_scalar($fieldValue))
				{
					$result->addError($this->getWrongFieldError($this->fieldToCheck . '[' . $fieldKey . ']', $this->dto->getName()));
				}
			}
			if (!is_null($this->maxCount) && count($fields[$this->fieldToCheck]) > $this->maxCount)
			{
				$result->addError($this->getTooManyItemsError($this->fieldToCheck, $this->dto->getName(), $this->maxCount));
			}
		}
	}

	return $result;
}