如何在drupal 8中使用块模块创建表单?

use*_*791 4 drupal drupal-8

我想用一个块模块构建一个表单Drupal 8.我知道在Drupal7 中构建表单,但Drupal 8中的表单似乎有所不同.

请求任何使用drupal8自定义表单作为块的人来帮助我.

Fra*_*bin 19

你的问题很模糊,因为我不知道你对Drupal 8中的模块,表格和模块了解了多少.所以这里有一个小指南要做什么,关于如何做详细的事情的进一步信息将是过度的这个答案.

1.创建一个新模块并启用它

看这里:命名并放置你的Drupal 8模块.

基本上你创建模块文件夹和模块信息yml文件让Drupal知道模块.然后使用drush或Drupal中的管理区域启用它.

2.创建表单

请看这里:Form API简介.

your_module/src/Form你下创建表单.上面链接中的更多细节.

3.创建块并渲染表单

看这里:创建一个自定义块.

your_module/src/Plugin/Block/你下面创建将呈现表单的块.

这个想法基本上是(根据Henrik的建议更新代码):

$builtForm = \Drupal::formBuilder()->getForm('Drupal\your_module\Form\Your??Form');
$renderArray['form'] = $builtForm;

return $renderArray;
Run Code Online (Sandbox Code Playgroud)

注意:您不需要包裹$builtForm$renderArray,你可以只返回$builtForm和被罚款.我个人喜欢这样做,因为我经常需要在最终渲染数组中添加其他内容,如标记,缓存设置或库等.

4.放置块

将块放在所需的区域.完成.

  • 您可以使用以下命令直接构建表单:`$ builtForm =\Drupal :: formBuilder() - > getForm('Drupal\yourmodule\Form\YourForm');` - 无论如何,很好的答案. (4认同)
  • 我已经做了,只看我的答案:)我不确定你对我的期望.我当然不会指定每一行代码,因为这不是StackOverflow的意思.如果你完全不知道表格等等,只需谷歌获取教程或其他东西,有很多. (2认同)