0

我真的是 drupal 8 的新手。我想在注册表单中添加一个链接。

我已经尝试了所有关于 hook_form_alter() 和刷新更改的方法。它仍然不起作用。

这是我的模块代码。

<?php

/**
 * Implements hook_theme().
 */

function hook_register_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
     echo "alter the form"; exit;
}


4

2 回答 2

1

函数 hook_form_alter 用于对呈现的表单进行更改。您应该注意钩子的命名,因为 Drupal 根据名称建议加载钩子。

在上面的代码中,您没有在函数名称中提供模块名称。也就是说,该词hook应替换为您的module name.

例如,如果您的模块名称是foo. 那么上面的钩子应该写成:

<?php

/**
 * Implements hook_form_alter().
 */
function foo_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
     echo "alter the form"; exit;
}

此外,由于您在代码中提供register了代码,因此在您的代码中,我假设它是您所针对的表单的 ID。为此,您应该将代码更改为:

<?php

/**
 * Implements hook_form_FORM_ID_alter().
 */
function foo_form_register_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
     echo "alter the form"; exit;
}

您可以参考以下 Drupal 官方链接之间的区别: hook_form_alter hook_form_FORM_ID_alter

于 2020-04-25T16:51:53.960 回答
0
**
 * Implements hook_form_FORM_ID_alter().
 */
function hook_form_user_register_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  // your code here
}

hook函数名称替换为 module_name 或您正在编写上述代码的模块文件的名称。

注意:以上更改是针对drupal 8提供的默认注册表单

于 2020-04-29T09:19:01.360 回答