繁体   English   中英

Typo3(6.2.4)Extbase /流体/错误处理:相关对象的奇怪索引

[英]Typo3 (6.2.4) Extbase / Fluid / Error Handling: Strange index of related objects

我有一个对象“ Laeufer”,可以有“ Sponsoren”(1:n)。 对于“ Sponsoren”,我有不同的必填输入字段,例如

<input class="form-control sponsorBetrag" name="tx_lhsponsorenlauf_p1registrierung[laeufer][sponsoren][0][betrag]" type="text">

但是,当我提交表单,属性路径看起来像sponsoren.00000000497382d100007fe050b66fc0.betragsponsoren.0.betrag我希望这将。 字段没有得到错误类“ myerror”。 有任何想法吗?

流体

<f:form.textfield errorClass="myerror" property="sponsoren.0.betrag" class="form-control sponsorBetrag" />

您最有可能使用\\TYPO3\\CMS\\Extbase\\Persistence\\ObjectStorage作为属性。 这与\\SplObjectStorage相似,并且不对内部存储阵列使用数字索引,而是对将要存储的对象进行哈希处理,并将此哈希对象用作其索引。 但是,您可以解决此问题,并使用$this->view->assign('sponsoren', $sponsoren->toArray()); 在控制器中为视图分配一个实际数组,而不是ObjectStorage。

其次,您的字段没有获取错误类,因为您没有使用ViewHelper。 因此,Fluid根本不在乎您的输入。 我建议在模板中使用<f:form.textfield property="betrag" />而不是自写输入。

编辑:

据我所知,使用TYPO3 6.2不能将OjectStorages子属性用作唯一字段,而不是具有选择字段。 如果您需要为ObjectStorage的不同元素提供表单字段,则可能是您的域模型体系结构是错误的。 如果您有一个特定的发起人对象,则应为此对象使用一个不同的属性,而不是将其包含在一个发起人列表中。

如果您想为单个赞助商准备一份编辑表格,请按以下步骤进行

<f:for each="{sponsors}" as="sponsor">
    <f:form action="update" controller="Sponsor" object="{sponsor}" name="sponsor">
        <f:form.textfield property="betrag" errorClass="myerror" class="form-control sponsorBetrag" />
    ...
        <f:form.submit value="Update sponsor" />
    </f:form>
</f:for>

并创建一个可以更新单个发起人的控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM