コード例 #1
0
 /**
  * {@inheritdoc}
  */
 public function validate(CompiledTransformMappingInterface $transformMapping, array $input)
 {
     $rules = [];
     $messages = [];
     foreach ($transformMapping->getFields(SetterField::OPERATION) as $field) {
         $parameters = $field->getValidationParameters();
         // add a validator for the data type of this field
         $parameters .= '|' . $field->getTypeValidatorName();
         $rules[$field->getName()] = $parameters;
     }
     $validator = Validator::make($input, $rules);
     if ($validator->fails() === true) {
         $failed = $validator->failed();
         $validationMessages = $validator->messages();
         $messages = [];
         foreach ($failed as $field => $rules) {
             $messages[$field] = [];
             foreach ($rules as $rule => $parameters) {
                 $messages[$field][$rule] = $validationMessages->first($field);
             }
         }
     }
     return $messages;
 }
コード例 #2
0
 protected function exportModel(ContextInterface $context = null, ResourceInterface $resource, CompiledTransformMappingInterface $transformMapping, $instance, $allFields = false)
 {
     $item = [];
     $resourceDefinition = $this->compilerCache->findResourceDefinitionForModelClass(get_class($instance));
     $href = $this->makeUrlForInstance($resourceDefinition, $instance);
     $fields = $transformMapping->getFields(GetterField::OPERATION);
     foreach ($fields as $def) {
         if ($allFields === true || $context->wantsField($def->getName()) === true) {
             $callable = $def->getCallback();
             if ($callable !== null) {
                 if (is_array($callable) === true) {
                     $val = call_user_func($callable, $instance);
                 } else {
                     $val = $this->getFieldValue($instance, $callable);
                 }
                 $item[$def->getName()] = $this->exportValue($def, $val);
             }
         }
     }
     $response = $this->factory->createInstanceResponse($resourceDefinition, $resource, $context, $href, $item, $instance);
     $this->exportEmbeds($transformMapping, $context, $response, $instance);
     return $response;
 }