TYPO3 Fluid:如何将多个域对象传递给动作控制器

TYPO3 Fluid: How to pass several domain objects to the action controller

我想要一个大的 Fluid 表单,可以同时修改多条记录。提交所有记录的页面只有一个表单。

<f:if condition="{records}">
<f:then>
    <f:form action="update" enctype="multipart/form-data" name="updateRecords" object="{records}">
    <div class="row">
        <f:for each="{records}" as="element" iteration="recordsIterator">
            <div class="col-md-3">
            <h5>{element.title}</h5>
            <div>
                <f:if condition="{feature}">
                    <f:then>
                        <h6>
                            <f:translate key="records.feature" />
                        </h6>
                        <f:form.checkbox property="feature" value="2" />
                        <label for="tx_example_records[updateRecords][{recordsIterator.index}][feature]">
                            <f:translate key="records.read" />
                        </label>
                    </f:then>
                </f:if>
                </div>
            </div>
        </f:for>
    </div>
    <f:form.submit class="button" value="{f:translate(key: 'submit', default: '[submit]')}"><input class="button" type="submit" name="" value="Submit" /></f:form.submit>
    </f:form>
</f:if>

相应的控制器只有一个域对象作为参数。

/**
 * action update
 *
 * @param \Foo\Example\Domain\Model\Records $updateRecords
 * @return void
 */
public function updateAction(\Foo\Example\Domain\Model\Records $updateRecords) : void

但是我需要一个解决方案,其中包含所有列出的数组 Domain\Model\Records 作为参数从提交的表单传递到 updateAction。属性 feature 是一个复选框,如果记录的特征值为 = '2'; ,则要选中该复选框。这在 TYPO3 中有可能吗?或者我必须使用一些技巧来完成这个任务?

您可以在此处使用数据传输对象,保存提交表单所需的值。您可以在这里找到一些与 Extbase 相关的一般信息:https://usetypo3.com/dtos-in-extbase.html