.../src/Plugin/rest/resource/EntityResource.php | 37 +--------------------- 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/core/modules/rest/src/Plugin/rest/resource/EntityResource.php b/core/modules/rest/src/Plugin/rest/resource/EntityResource.php index 050c7f5..e9910fd 100644 --- a/core/modules/rest/src/Plugin/rest/resource/EntityResource.php +++ b/core/modules/rest/src/Plugin/rest/resource/EntityResource.php @@ -203,41 +203,6 @@ public function post(EntityInterface $entity = NULL) { } /** - * Gets the values from the field item list casted to the correct type. - * - * Values are casted to the correct type so we can determine whether or not - * something has changed. REST formats such as JSON support typed data but - * Drupal's database API will return values as strings. Currently, only - * primitive data types know how to cast their values to the correct type. - * - * @param \Drupal\Core\Field\FieldItemListInterface $field_item_list - * The field item list to retrieve its data from. - * - * @return mixed[][] - * The values from the field item list casted to the correct type. The array - * of values returned is a multidimensional array keyed by delta and the - * property name. - */ - protected function getCastedValueFromFieldItemList(FieldItemListInterface $field_item_list) { - $value = $field_item_list->getValue(); - - foreach ($value as $delta => $field_item_value) { - /** @var \Drupal\Core\Field\FieldItemInterface $field_item */ - $field_item = $field_item_list->get($delta); - $properties = $field_item->getProperties(TRUE); - // Foreach field value we check whether we know the underlying property. - // If we exists we try to cast the value. - foreach ($field_item_value as $property_name => $property_value) { - if (isset($properties[$property_name]) && ($property = $field_item->get($property_name)) && $property instanceof PrimitiveInterface) { - $value[$delta][$property_name] = $property->getCastedValue(); - } - } - } - - return $value; - } - - /** * Responds to entity PATCH requests. * * @param \Drupal\Core\Entity\EntityInterface $original_entity @@ -281,7 +246,7 @@ public function patch(EntityInterface $original_entity, EntityInterface $entity } // Unchanged values for entity keys don't need access checking. - if ($this->getCastedValueFromFieldItemList($original_entity->get($field_name)) === $this->getCastedValueFromFieldItemList($entity->get($field_name))) { + if ($original_entity->get($field_name)->equals($field)) { continue; } // It is not possible to set the language to NULL as it is automatically