在流体布局文件中嵌入自定义 ext:form

问题描述

我的 Sitepackage 中有一个自定义的“联系我们”表单 - 使用 TYPO3 v10。

表单工作正常,我可以像插入任何其他表单/内容元素一样在任何页面上插入表单。

我想要做的是将表单添加到我的全局布局模板中,使其出现在每个页面上,使其位于页脚中。

docs 中,我将其添加到我的 Fluid 布局模板中:

<formvh:render persistenceIdentifier="EXT:my_site_package/Resources/Private/Forms/my_contact_us.form.yaml"/>

然后我将其添加到我的表单 conf (my_contact_us.form.yaml) 中:

    renderingOptions:
      controllerAction: perform
      addQueryString: false
      argumentsToBeExcludedFromQueryString: [ ]
      additionalParams: [ ]

当我这样做时,我收到一个类型错误

Argument 1 passed to TYPO3\CMS\Extbase\Service\ExtensionService::getPluginNameByAction() must be of the type string,null given

是否有什么我没有正确配置的地方?感谢任何帮助,再次感谢。

解决方法

我前段时间和几个小时前也经历过这种情况..

通过覆盖 235-241 之间的行(其中 \TYPO3\CMS\Fluid\ViewHelpers\FormViewHelper 设置为 action、controller、extensionName 和 pluginName 的默认空值)来修复它 - 目前在一个变通方法中。

用这个代替:

$formActionUri = $uriBuilder->uriFor(
    $this->arguments['action'] ?? 'render',$this->arguments['arguments'] ?? [],$this->arguments['controller'] ?? 'FormFrontendController',$this->arguments['extensionName'] ?? 'form',$this->arguments['pluginName'] ?? 'Formframework'
);

现在对我自己来说效果很好。在 TYPO3 v10.4.13 上测试