【问题标题】:TYPO3 Extbase createAction - how to create a new IRRE relation with f:form?TYPO3 Extbase createAction - 如何使用 f:form 创建新的 IRRE 关系?
【发布时间】:2021-11-20 21:40:41
【问题描述】:

我已经使用扩展生成器创建了一个扩展。在扩展的帮助下,应该映射一个订购流程。

一个订单可以包含多个 IRRE 记录(数量)。 数量包含所需的数量以及是单个产品还是菜单的信息。

在后端一切正常。但现在我尝试通过 f:form 在前端创建一个新订单。我不清楚如何为订单分配新的 IRRE 关系。我的方法是这个,但它不起作用。有人可以帮忙吗?

我试过了:

<f:for each="{products}" as="product" key="key">
    <div class="product">
        <label for="product-{key}">
            <f:form.checkbox property="quantities.product" multiple="1" id="product-{key}" name="product-{key}" value="{product}" />
            {product.title}<br />
            <f:for each="{product.productvariants}" as="productvariant">
                - {productvariant.title}<br />
            </f:for>
        </label>
    </div>
</f:for>
<f:for each="{menus}" as="menu" key="key">
    <div class="menu">
        <label for="menu-{key}">
            <f:form.checkbox property="quantities.menu" multiple="1" id="menu-{key}" name="menu-{key}" value="{menu}" />
            {menu.title}
        </label>
    </div>
</f:for>

但我得到了这个例外:

Exception while property mapping at property path "quantities.product": The identity property "" is no UID.

【问题讨论】:

    标签: forms typo3 extbase typo3-9.x typo3-extensions


    【解决方案1】:

    我建议编写自定义完成器 (see docs) 并扩展 \TYPO3\CMS\Form\Domain\Finishers\SaveToDatabaseFinisher

    如果您使用DataHandler 来持久化而不是编写custom sql,您甚至不需要过多关心关系处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2013-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多