Следуя руководствам и документации, я могу создать настраиваемое поле, поддерживающее одно строковое значение. Однако то, что я хотел бы выполнить, - это настраиваемый список (предпочтительно флажки
тип), где пользователь может выбирать различные параметры. Я попытался посмотреть в 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, которые успешно создают пользовательский флажки
тип поля, на который я могу ссылаться.