如何在Drupal 8中的字段设置表单中添加复选框

时间:2016-08-17 05:35:17

标签: drupal drupal-8

enter image description here

如何在默认值字段集下方和文本字段下方添加自定义复选框,并且它是自定义提交处理程序?

我使用了hook_form_field_ui_field_edit_form_alter(),但它不起作用。 我使用了hook_field_widget_third_party_settings_form()但它没有用。

不知道我做错了什么。 请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以按照下面提到的方式更改表单

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;
  }
}

我在本地尝试附上以下屏幕截图: enter image description here

答案 1 :(得分:0)

感谢您的帮助! 如果我想要多个字段类型,如(数字,'分类','列表','文本'等),那么它的默认行为对于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。