Drupal 8自定义表单,带弹出窗口

时间:2017-05-17 08:09:24

标签: drupal drupal-modules drupal-8

当用户点击前端的链接时,我想在弹出窗口中显示我的自定义表单,我尝试了许多在网络上显示的解决方案,但对我不起作用。

这是我的代码。

        $response = new AjaxResponse();
        // Get the modal form using the form builder.
        $modal_form = $this->formBuilder->getForm('Drupal\fwsactions\Forms\FwsActionsForm');
        $modal_form['#attached']['library'][] = 'core/drupal.dialog.ajax';
        // Add an AJAX command to open a modal dialog with the form as the content.
        $modal_form = render($modal_form);
        $response->addCommand(new OpenModalDialogCommand('My Modal Form', $modal_form, ['width' => '800']));

        return $response;

如何通过仅点击链接打开此表单。

1 个答案:

答案 0 :(得分:5)

$content['overlay_link'] = array(
     '#type' => 'link',
     '#title' => $this->t('Add movie'),
     '#url' => Url::fromRoute('node.add', ['node_type' => 'content_type_movie']),
     '#attributes' => [
       'class' => ['use-ajax'],
       'data-dialog-type' => 'modal',
       'data-dialog-options' => Json::encode([
         'width' => 700,
       ]),
     ],
   );

请查看here了解详情。 这里还有一个link可能有所帮助,虽然两者相同但仍在分享。

希望这有帮助。