我有一个扩展和前端表单来创建和更新元素 . 用户可以创建具有多个日期的发票,这些日期存储为m:n记录 .
创建发票和日期适用于:
<f:form.checkbox name="newRechnungen[termine][]" value="{termin.uid}" />
但如果我编辑发票并提交表单,我会收到错误:
<f:form.checkbox name="rechnungen[termine][]" value="{termin.uid}" />
显示errror像:
表单字段“[items] [] []”无效 . 原因:“[]”不是用作最后一个参数,而是用在中间的某个地方(如foo [] [bar])
改变标签,如解决方案所述
<f:form.checkbox name="rechnungen[termine][{key}]" value="{termin.uid}" />
显示错误:
#1297759968:属性路径“文件”的属性映射异常:PHP警告:spl_object_hash()期望参数1为对象,null /usr/share/typo3/typo3_src-7.6.2/typo3/sysext/extbase/ Classes / Persistence / ObjectStorage.php第155行=
文档页面上描述的带有 enctype="multipart/form-data"
表单标记的解决方案无效 .
知道如何解决这个问题吗?
2 回答
我现在可以通过取消设置initializeUpdateAction中的空值来解决它:
检查下面的复选框生成的HTML是否具有正确的格式 .
您必须在HTML中使用以下内容:
<input type="checkbox" name="tx_yourext_plugin[rechnungen][termine][1] value="__your value__" />
这样的名字
tx_yourext_plugin[rechnungen][termine][]
将无效 .通过上面的错误,我可以说你的
{key}
变量为空 . 尝试<f:debug>{key}</f:debug>
检查它是否为空 .UPDATE
添加你的setter参数
setTermine(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $temines = null)