函数 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