0

我的域模型中有 am:n 关系:

  • 查询是我的域模型中的聚合根
  • 可以为每个调查分配几个调查员。

查询模型中定义为:

/**
 * @var Tx_Extbase_Persistence_ObjectStorage<Tx_MyExt_Domain_Model_Investigator>
 */
protected $investigator;

调查者域模型映射到 TYPO3 的fe_user表,在配置 ( ) 中正确注明ext_typoscript_setup.txt

config.tx_extbase{
    persistence{
        classes{
            Tx_MyExt_Domain_Model_Investigator {
                mapping {
                    recordType = Tx_Extbase_Domain_Model_FrontendUser
                    tableName = fe_users
                }
            }
        }

这很好用,我可以在后端和前端显示和编辑查询记录。但是,当我想更改分配给一个查询的调查员(从编辑操作)时,我在提交表单后遇到异常:

#1297759968: Exception while property mapping at property path "investigator":
No converter found which can be used to convert from "array" to
"Tx_Extbase_Persistence_ObjectStorage"

我用于此的多选框是这样创建的:

<f:form.select multiple="true" size="10" property="investigator" 
value="{inquiry.investigator}" options="{allInvestigators}" 
optionLabelField="name" />

呈现如下:

<select name="tx_myext_inquiry[inquiry][investigator][]" size="10" multiple="true">
    <option value="362">John Doe</option>
    <option value="590">Jane Doe</option>
    <option selected="selected" value="361">Steve Miller</option>
    <option value="720">James Brown</option>
    <option value="726">Janis Joplin</option>
</select>

{allInvestigators}是一个包含来自“调查员”组的所有用户的数组。已经存储的值标有“已选择”,这证明我的某些代码是正确的;)。

我尝试摆弄 InquiryController 中的类型转换器(Tx_Extbase_Property_TypeConverter_PersistentObjectConverter Dok)以将我的数组转换为一个对象,但它无济于事。字段调查器作为数组传递给触发异常的更新操作。

我现在花了五个小时,需要继续前进。

  • 我怎样才能摆脱这个错误信息?
  • 将数组转换为对象是正确的方法吗?

(任何关于更多细节的问题将尽快得到答复)


编辑:
环境:TYPO3 版本 6.1.1,流体 6.1.0,Extbase 6.1.0

4

3 回答 3

2

我在模型定义中找到了罪魁祸首Classes/Domain/Model/Inquiry.php

/**
 * @var Tx_Extbase_Persistence_ObjectStorage<Tx_MyExt_Domain_Model_Investigator>
 */
protected $investigator;

我将(部分)@var 注释更改为命名空间样式:

/**
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<Tx_MyExt_Domain_Model_Investigator>
 */
protected $investigator;

现在更新过程有效。我想在我们的项目中,我们需要将模型标准化为命名空间。如果这是一个错误,我会将其提交到 forge.typo3.org。

于 2013-07-17T14:32:04.140 回答
1

这是目前 TYPO3 的 6.* 分支中的一个已知问题。

请参阅http://forge.typo3.org/issues/54289目前有一个补丁正在等待修复。

于 2013-12-30T09:56:40.647 回答
0

我已经使用 GIT 的 TYPO3 6.1 和 TYPO3 6.2-dev 对其进行了测试,但无法重现此问题。因此,如果您可以放弃一些环境信息,那就太好了。请从您当前的 TYPO3 版本开始。

于 2013-07-16T19:21:42.517 回答