Не эксперт по регулярному выражению, но я думаю, что с самого начала вы могли бы использовать негативный взгляд. ^(?!foo).*$
не должен соответствовать чему-либо, начиная с foo
.
Редактировать: это решено в версии 2.4. Обновите ваш composer.json и наслаждайтесь.
У меня та же проблема. Что-то, что я попробовал, это возврат для массива вместо метода преобразования объекта. Это работает, но не реальное решение.
похоже, что денормализатор вызывается 2 раза: один раз для вашего преобразователя, а затем для преобразования «CreativeElement» в «CreativeElement» с помощью AbstractItemNormalizer
$context['api_denormalize'] = true;
$context['resource_class'] = $class;
$inputClass = $this->getInputClass($class, $context);
if (null !== $inputClass && null !== $dataTransformer = $this->getDataTransformer($data, $class, $context)) {
$data = $dataTransformer->transform(
parent::denormalize($data, $inputClass, $format, ['resource_class' => $inputClass] + $context),
$class,
$context
);
}
return parent::denormalize($data, $class, $format, $context);
Также ищем решение