自定义视图字段中的表单

时间:2019-12-16 16:46:17

标签: drupal-8

我正在尝试为Drupal 8中的视图创建一个自定义字段,该字段允许执行一个动作而无需重新加载页面。我想我必须在该自定义字段中创建一个表单,但我不知道如何实现。

有没有在不重定向到路线的情况下执行此操作或其他替代方法的想法吗?

该视图将是自定义实体的列表,我需要为每行添加一个按钮。

谢谢!

1 个答案:

答案 0 :(得分:1)

最后,我按照以下步骤解决了该问题:

  • 我创建了一个视图自定义字段(generate:plugin:views:field与 drupal控制台)
  • 我创建了一个表格(generate:form)

然后,在视图自定义字段呈现函数中返回以下形式:

$form = \Drupal::formBuilder()->getForm('Drupal\test_module\Form\TestForm', $values->_entity->ID());
return $form;

请务必注意,需要增量(动态)formId才能正常运行。我通过创建一个静态变量和一个__construct()方法来做到这一点,如下所示:

protected static $instanceId;

public function getFormId() {
  return 'my_form_id_' . self::$instanceId;
}

public function __construct(){
  if (empty(self::$instanceId)) {
    self::$instanceId = 1;
  }
  else {
    self::$instanceId++;
  }
}