如何渲染特定的表单元素 Drupal 8
How to render specific form elements Drupal 8
我正在使用 Drupal 8 并想自定义表单元素的显示方式。具体来说,我不喜欢将不可编辑的填充文本字段显示为纯文本。我会把它显示为可编辑的文本字段(或者让文本看起来像是在不可编辑的文本字段中)。我查看了各种挂钩函数来尝试实现这一点,但似乎没有任何效果。
我认为解决此问题的最佳方法是,如果我可以自己单独呈现表单字段,然后创建一个 twig 文件来显示我希望显示的各个字段。这是我希望树枝字段看起来像的样子:
<div class="from">
{{ form.mail }}
</div>
<div class="message">
{{ form.message }}
</div>
<div class="actions">
{{ form.actions }}
</div>
在您的 .module 文件中
function your_module_theme($existing, $type, $theme, $path) {
return [
'custom_theme' => [
'variables' => [
'form' => NULL
],
'render element' => 'form',
]
];
}
在您的 CustomForm.php 文件中
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
[...your fields ...]
return $form
}
在您的自定义模块模板目录中
custom-theme.html.twig
{{ form.your_field }}
我正在使用 Drupal 8 并想自定义表单元素的显示方式。具体来说,我不喜欢将不可编辑的填充文本字段显示为纯文本。我会把它显示为可编辑的文本字段(或者让文本看起来像是在不可编辑的文本字段中)。我查看了各种挂钩函数来尝试实现这一点,但似乎没有任何效果。
我认为解决此问题的最佳方法是,如果我可以自己单独呈现表单字段,然后创建一个 twig 文件来显示我希望显示的各个字段。这是我希望树枝字段看起来像的样子:
<div class="from">
{{ form.mail }}
</div>
<div class="message">
{{ form.message }}
</div>
<div class="actions">
{{ form.actions }}
</div>
在您的 .module 文件中
function your_module_theme($existing, $type, $theme, $path) {
return [
'custom_theme' => [
'variables' => [
'form' => NULL
],
'render element' => 'form',
]
];
}
在您的 CustomForm.php 文件中
public function buildForm(array $form, FormStateInterface $form_state) {
$form = parent::buildForm($form, $form_state);
[...your fields ...]
return $form
}
在您的自定义模块模板目录中
custom-theme.html.twig
{{ form.your_field }}