Рейтинг:0

Как сделать собственное поле с несколькими флажками?

флаг ke

Следуя руководствам и документации, я могу создать настраиваемое поле, поддерживающее одно строковое значение. Однако то, что я хотел бы выполнить, - это настраиваемый список (предпочтительно флажки тип), где пользователь может выбирать различные параметры. Я попытался посмотреть в core/modules/options schema.yml, и копирование настроек хранилища все равно дало мне те же результаты. я получаю ошибку Это значение должно иметь правильный примитивный тип.

Я считаю, что это соответствующие фрагменты кода, которые у меня есть в настоящее время:

в типе поля/

  схема общедоступной статической функции (FieldStorageDefinitionInterface $field_definition) {
    возвращаться [
      // столбцы содержат значения, которые будут храниться в поле
      'столбцы' => [
        'значение' => [
          'тип' => 'текст',
          'размер' => 'нормальный',
          'не нуль' => ЛОЖЬ,
          'сериализовать' => ИСТИНА
        ],
      ],
      'индексы' => [
        'значение' => ['значение'],
      ],
    ];
  }

В FieldWidget/

  публичная функция formElement(FieldItemListInterface $items, $delta, элемент массива $, массив &$form, FormStateInterface $form_state) {
    $sglists = ['1' => 'а', '2' => 'б'];
    $элемент['значение'] = $элемент + [
        '#type' => 'флажки',
        '#options' => $sglists,
        '#пустое_значение' => '',
        '#default_value' => (isset($items[$delta]->значение) && isset($sglists[$items[$delta]->значение])) ? $items[$delta]->значение: NULL,
        '#description' => t('Выберите список Sendgrid'),
      ];

    вернуть $элемент;
  }

в схеме.yml

field.storage_settings.sendgridlists:
  label: 'Списки Sendgrid'
  тип: отображение
  сопоставление:
    выбираемые_списки:
      тип: последовательность
      label: 'Выбираемые списки'
      последовательность:
        тип: строка

Я почти уверен, что моя проблема связана с schema.yml, но я не очень понимаю, как превратить это из одного значения в список с несколькими значениями. (аналогично ядру/модулям/опциям)

Любая помощь приветствуется, включая любые ссылки на существующие модули contrib, которые успешно создают пользовательский флажки тип поля, на который я могу ссылаться.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.