Bằng cách làm theo hướng dẫn và tài liệu, tôi có thể tạo trường tùy chỉnh hỗ trợ một giá trị chuỗi đơn. Tuy nhiên, những gì tôi muốn thực hiện là một danh sách tùy chỉnh (tốt nhất là hộp kiểm
type) nơi người dùng có thể chọn các tùy chọn khác nhau. Tôi đã thử tìm kiếm trong core/modules/options schema.yml và sao chép cài đặt lưu trữ vẫn cho tôi kết quả tương tự. tôi nhận được lỗi Giá trị này phải thuộc loại nguyên thủy chính xác.
Đây là những gì tôi tin là các đoạn mã có liên quan mà tôi hiện có:
trong loại trường/
lược đồ hàm tĩnh công khai (FieldStorageDefinitionInterface $field_definition) {
trở lại [
// các cột chứa các giá trị mà trường sẽ lưu trữ
'cột' => [
'giá trị' => [
'loại' => 'văn bản',
'kích thước' => 'bình thường',
'không rỗng' => SAI,
'tuần tự hóa' => ĐÚNG
],
],
'chỉ mục' => [
'giá trị' => ['giá trị'],
],
];
}
Trong FieldWidget/
hàm công khai formElement(FieldItemListInterface $items, $delta, mảng $element, mảng &$form, FormStateInterface $form_state) {
$sglists = ['1' => 'a', '2' => 'b'];
$element['value'] = $element + [
'#type' => 'hộp kiểm',
'#options' => $sglist,
'#empty_value' => '',
'#default_value' => (isset($items[$delta]->value) && isset($sglists[$items[$delta]->value])) ? $items[$delta]->giá trị : NULL,
'#description' => t('Chọn Danh sách Sendgrid'),
];
trả lại phần tử $;
}
trong lược đồ.yml
field.storage_settings.sendgridlists:
nhãn: 'Danh sách Sendgrid'
loại: lập bản đồ
lập bản đồ:
selectable_lists:
loại: trình tự
nhãn: 'Danh sách có thể chọn'
sự nối tiếp:
loại: chuỗi
Tôi khá chắc chắn rằng vấn đề của mình xuất phát từ schema.yml nhưng tôi không thực sự hiểu cách biến vấn đề này từ một giá trị thành danh sách đa giá trị. (tương tự như lõi/mô-đun/tùy chọn)
Mọi trợ giúp đều được đánh giá cao, bao gồm mọi liên kết đến các mô-đun đóng góp hiện có để tạo thành công tùy chỉnh hộp kiểm
loại trường mà tôi có thể tham khảo.