首页 文章

带有子元素的TYPO3 8.7更新m:n无法正常工作

提问于
浏览
0

我有一个扩展和前端表单来创建和更新元素 . 用户可以创建具有多个日期的发票,这些日期存储为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 回答

  • 0

    我现在可以通过取消设置initializeUpdateAction中的空值来解决它:

    foreach($args['rechnungen']['termine'] as $key => $value) {
            if (intval($value) === 0) {
                unset($args['rechnungen']['termine'][$key]);
            }
        }
    
  • 0

    检查下面的复选框生成的HTML是否具有正确的格式 .

    <f:form.checkbox name="rechnungen[termine][{key}]" value="{termin.uid}" />
    

    您必须在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)

相关问题