如何在 Drupal 8 的字段设置表单中添加复选框
how to add checkbox in field settings form in Drupal 8
如何在默认值字段集下方和文本字段及其自定义提交处理程序下方添加自定义复选框?
我使用了 hook_form_field_ui_field_edit_form_alter() 但它不起作用。
我已经使用 hook_field_widget_third_party_settings_form() 但它不起作用。
不知道我做错了什么。
请帮忙。
您可以按照以下方式修改表格
function {your_module}_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
switch ($form_id) {
case 'field_config_edit_form':
$form['default_value']['widget'][1] = array(
'#type' => 'checkbox',
'#title' => t('Your checkbox'),
'#size' => 10,
'#maxlength' => 255,
'#default_value' => 1,
'#required' => TRUE,
'#description' => '<p>' . t('Your checkbox altered.') . '</p>',
);
break;
}
}
我在本地试过附上下面的截图:
感谢帮助!
如果我想要它用于多个字段类型,例如 (number, 'taxonomy', 'list', 'text' etc) 那么它的默认行为对于 D8 是不同的
而在 D7 中,当我们使用 hook_form_field_ui_field_edit_form_alter() 时,我们可以简单地将其作为数组传递。喜欢:
if (in_array($form['#field']['module'], array('number', 'taxonomy', 'list', 'text'))) {
//My form field here
}
但在 D8 中有一些新术语,如:entity_autocomplete、'select'(而不是 'list')等。
所以在这种情况下,我认为 hook_form_alter 不适用于所有类型的文件。
这就是为什么我的方法是
hook_form_field_ui_field_edit_form_alter 或 hook_field_widget_third_party_settings_form.
如何在默认值字段集下方和文本字段及其自定义提交处理程序下方添加自定义复选框?
我使用了 hook_form_field_ui_field_edit_form_alter() 但它不起作用。 我已经使用 hook_field_widget_third_party_settings_form() 但它不起作用。
不知道我做错了什么。 请帮忙。
您可以按照以下方式修改表格
function {your_module}_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
switch ($form_id) {
case 'field_config_edit_form':
$form['default_value']['widget'][1] = array(
'#type' => 'checkbox',
'#title' => t('Your checkbox'),
'#size' => 10,
'#maxlength' => 255,
'#default_value' => 1,
'#required' => TRUE,
'#description' => '<p>' . t('Your checkbox altered.') . '</p>',
);
break;
}
}
我在本地试过附上下面的截图:
感谢帮助! 如果我想要它用于多个字段类型,例如 (number, 'taxonomy', 'list', 'text' etc) 那么它的默认行为对于 D8 是不同的 而在 D7 中,当我们使用 hook_form_field_ui_field_edit_form_alter() 时,我们可以简单地将其作为数组传递。喜欢:
if (in_array($form['#field']['module'], array('number', 'taxonomy', 'list', 'text'))) {
//My form field here
}
但在 D8 中有一些新术语,如:entity_autocomplete、'select'(而不是 'list')等。 所以在这种情况下,我认为 hook_form_alter 不适用于所有类型的文件。 这就是为什么我的方法是 hook_form_field_ui_field_edit_form_alter 或 hook_field_widget_third_party_settings_form.