Symfony2-自定义表单呈现验证错误

帕特里克

我正在尝试对我的symfony2实体字段使用select2

我为实体字段创建了一个扩展,一个树枝模板和一个模型转换器。渲染效果很好,但是我在提交字段时遇到问题。

使用原始格式,将以如下方式发送值:

Content-Disposition: form-data; name="com_bundle_book[series]"  1 

对于具有多个的实体

Content-Disposition: form-data; name="com_bundle_book[author][]" 1
Content-Disposition: form-data; name="com_bundle_book[author][]" 3

select2的行为是将现有字段替换为隐藏字段。发送的数据如下所示:

Content-Disposition: form-data; name="com_bundle_book[series]" TraLiRo 
Content-Disposition: form-data; name="com_bundle_book[author][]" Ferdinand,Hans

我希望使用modelTransformer来解决此问题,但是相反,在从未调用modelTransformer的情况下,两个字段都出现错误(无效值)。

我尝试通过扩展实体和扩展实体本身来进行尝试。我的服务:

com_bundle.tag_type_extension:
    class: ...\Form\Extension\TagTypeExtension
    tags:
        - { name: form.type_extension, alias: entity }
    arguments: [@doctrine.orm.entity_manager]
com_bundle.form.type.tagType_entity:
    class: ...\Form\Extension\TagTypeExtension2
    tags:
        - { name: form.type, alias: tagType_entity }
    arguments: [@doctrine.orm.entity_manager]

这些课程:

我该如何解决?

更新

表单是这样构建的:

   $builder
        ->add('author',
            'entity',
            array(
                'select2' => true,
                'multiple' => true,
                'class' => 'Bundle:Author',
                'property' => 'name'
            )
        )
的AlterPHP

您的Transformer不应返回对象,而应返回对象的ID,因为默认实体ModelTransformer仍然适用,并将这些ID转换为对象。

Doctrine实体Model Transformer适用于您的产品,这就是您永远无法达到的原因。像这样将其添加为ViewTransformer:

$builder->addViewTransformer(
    new ObjectListToStringTransformer(
        $this->em,
        [
            'class' => $options['class'],
            'property' => $options['property'],
            'delimiter' => ','
        ]
    ), true
);

我添加了一个TRUE作为addViewTransformer =>的第二个参数,与父字段类型定义的其他参数相比,它强制您的Transformer处于前置状态。

编辑:这样,您将必须适应您的Transformer transform()方法,因为它现在将接收ID数组而不是对象数组...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义Symfony2表单

来自分类Dev

ZF2呈现自定义类的表单验证错误

来自分类Dev

Symfony2 Ajax表单验证在树枝中呈现错误

来自分类Dev

Symfony2 Ajax表单验证在树枝中呈现错误

来自分类Dev

Symfony2自定义验证限制了表单构建器中的使用

来自分类Dev

自定义symfony2嵌入表单模板

来自分类Dev

symfony2表单渲染自定义

来自分类Dev

symfony2自定义验证器FatalErrorException

来自分类Dev

Symfony2自定义按钮

来自分类Dev

Symfony2自定义按钮

来自分类Dev

自定义错误页面InvalidArgumentException Symfony2

来自分类Dev

自定义错误页面InvalidArgumentException Symfony2

来自分类Dev

Zend Framework 2表单元素错误类+自定义ViewHelper以呈现表单

来自分类Dev

Symfony2表单集合-

来自分类Dev

Symfony2表单处理

来自分类Dev

Symfony2:递归验证

来自分类Dev

Symfony2 SecurityController错误

来自分类Dev

语义错误Symfony2

来自分类Dev

Symfony2 REST API,始终返回错误以验证表单

来自分类Dev

Symfony2:如何对自定义复合表单类型使用约束?

来自分类Dev

Symfony2自定义表单字段类型HTML5颜色

来自分类Dev

如何在Symfony2 / 3中基于用户角色自定义表单字段?

来自分类Dev

Symfony2自定义表单渲染器助手功能

来自分类Dev

Symfony2:如何对自定义复合表单类型使用约束?

来自分类Dev

Symfony2自定义表单,替换属性,值和主题

来自分类Dev

Symfony2自定义表单类型或扩展名

来自分类Dev

Symfony2自定义字段类型和提交时的表单事件

来自分类Dev

Symfony2自定义选民角色层次结构

来自分类Dev

Symfony2自定义控制台命令