【问题标题】:Flow3 - ManyToMany Fluid Template hidden Fields (PropertyMapping)Flow3 - 多对多流体模板隐藏字段(PropertyMapping)
【发布时间】:2014-08-03 20:18:57
【问题描述】:

我有一个提问模型和一个提问模型,它们通过多对多关系连接。 现在我正在构建一个可拖动的 UI (jQueryUI),可以将问题添加到问题中。

在右侧,每个问题项都表示为包含其 __identity 的(隐藏)文本字段:

<f:form.textfield property="questions" name="questions" value="{question}" />

在左侧,我有一个表单作为问题项的放置目标。 提交此表单时,flow3 回复此错误消息:

1297759968:目标类型的属性映射时出现异常 “MC\QuestionaryBuilder\Domain\Model\Questionary”,位于属性路径 “问题”:不允许映射属性“__identity”。

你需要使用 $propertyMappingConfiguration->allowProperties('__identity') 启用 此属性的映射。

我怎样才能让它工作? :(

编辑

当我使用这个多选框时,我可以让它工作!

但我需要一个可拖动的 UI,其中每个问题项都是包含 UID 的隐藏文本字段。

【问题讨论】:

    标签: doctrine-orm many-to-many fluid typo3-flow


    【解决方案1】:

    当您使用流畅的方式构建表单时,form 的打开和结束标记之间的所有元素都是受信任的属性(同一种“允许修改”-属性)。流体保护您的表单,或者更确切地说:对象,用于操作。因为您的 dropzone 一开始是空的(我猜),所以这些字段没有标记为“允许操作”字段。这就是你的错误信息想要表达的意思。

    看起来您没有向属性问题添加问题,而是尝试将问题 set 问题设置为问题对象,这就是为什么您的错误表明您正在尝试操纵 身份的问题。你应该试试&lt;f:form.textfield name="questions[]" value="{question}" /&gt;

    在错误消息中,您还可以找到您可能想知道的提示: 您可以使用 property-mapping-configuration 自行将字段标记为“允许操作”。

    您可以找到documentation here

    示例: 这是一个如何使用属性映射配置的粗略示例。

    protected function initializeCreateAction() {
            $configuration = $this->arguments['newQuestionary']->getPropertyMappingConfiguration();
            //You can do: $configuration->allowAllProperties();
            //Or more specify:
            $configuration->allowProperties('questions');
    }
    
    public function createAction($newQuestionary){
            //...
            $this->myRepository->create($newQuestionary);
            //...
    }
    

    也许您可以向我们提供更多信息,尤其是您的 html(可能还有模型)的示例代码。

    也很高兴知道:

    • 您可以将&lt;f:form.hidden .../&gt; 用于隐藏字段。
    • 如果您使用&lt;f:form.someTag property="myPro" /&gt;,名称和值属性将被设置(并覆盖)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 2020-07-01
      • 2014-05-25
      • 2011-03-25
      • 2013-03-05
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      相关资源
      最近更新 更多