示例#1
0
 /**
  * @param array  $data
  * @param string $class
  * @param null   $format
  * @param array  $context
  *
  * @return object
  */
 public function denormalize($data, $class, $format = null, array $context = [])
 {
     foreach ([static::KEY_PARAMS, static::KEY_RESULT] as $key) {
         if (empty($data[$key])) {
             continue;
         }
         $class = isset($context['params']) ? $context['params'] : MixedArrayDenormalizer::TYPE;
         $data[$key] = $this->serializer->denormalize($data[$key], $class, $context['encoding'], $context);
     }
     return parent::denormalize($data, $class, $format, $context);
 }
 /**
  * @param mixed  $value
  * @param string $class
  * @param string $name
  * @param string $format
  * @param array  $context
  *
  * @return mixed|object
  */
 protected function denormalizeProperty($value, $class, $name, $format = null, array $context = array())
 {
     /** @var ClassMetadata $meta */
     $meta = $context['entityMeta'];
     if ($meta->hasField($name)) {
         return $value;
     }
     if (isset($meta->embeddedClasses[$name])) {
         return parent::denormalize($value, null, $format, $context);
     }
     if (!isset($meta->associationMappings[$name])) {
         return parent::denormalizeProperty($value, $class, $name, $format, $context);
     }
     switch ($meta->associationMappings[$name]['type']) {
         case ClassMetadata::ONE_TO_ONE:
         case ClassMetadata::MANY_TO_ONE:
             return $this->denormalizeAssociation($value, null, $name, $format, $context);
         case ClassMetadata::ONE_TO_MANY:
         case ClassMetadata::MANY_TO_MANY:
             return $this->denormalizeCollection($value, null, $name, $format, $context);
     }
 }