3 namespace Drupal\field_test\Plugin\Field\FieldType;
5 use Drupal\Core\Field\FieldStorageDefinitionInterface;
6 use Drupal\Core\TypedData\DataDefinition;
7 use Drupal\Core\Field\FieldItemBase;
10 * Defines the 'test_object_field' entity field item.
13 * id = "test_object_field",
14 * label = @Translation("Test object field"),
15 * description = @Translation("Test field type that has an object to test serialization"),
16 * default_widget = "test_object_field_widget",
17 * default_formatter = "object_field_test_default"
20 class TestObjectItem extends FieldItemBase {
25 public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
26 $properties['value'] = DataDefinition::create('any')
27 ->setLabel(t('Value'))
36 public static function schema(FieldStorageDefinitionInterface $field_definition) {
40 'description' => 'The object item value.',
52 public function setValue($values, $notify = TRUE) {
53 if (isset($values['value'])) {
54 // @todo Remove this in https://www.drupal.org/node/2788637.
55 if (is_string($values['value'])) {
56 $values['value'] = unserialize($values['value']);
59 parent::setValue($values, $notify);