0

我正在创建具有集合类型的表单,并且集合元素具有带有数据转换器的字段,女巫是 ID 到实体转换器:

$builder->add(
        $builder->create('template', 'text', array(
            'label' => false,
            'required' => false,
            'attr' => array(
                'class' => 'template-selector',
            )
        ))->addModelTransformer($transformer)
    );

这是必需的,因为我想将此字段转换为 Select2 (javascript lib) ajax 驱动的元素。

问题是我需要用数据填充 Select2,为此我只有一个合理的(出于性能考虑)选项将来自表单构建器的数据作为属性(比如说数据值)传递,但表单构建器有任何数据,除非我在其中创建元素EventListener 但后来我无法添加模型转换器。

我怎样才能实现这样的功能?没有任何额外的查询或 ajax 调用?

4

1 回答 1

0

我发现在树枝模板中执行此操作的唯一方法:

{% if item.get('value').template %}
    {% set templ_id = item.get('value').template.getId %}
    {% set templ_text = item.get('value').template.getTitle %}

    {{ form_row(item.template, {'attr': {'data-value' : '{id:' ~ templ_id ~ ', text:"' ~ templ_text ~ '"}'}}) }}
{% else %}
    {{ form_row(item.template) }}
{% endif %}

其中 item 是表单集合元素

于 2013-02-20T11:55:20.163 回答