应用DataTransformer后访问原始未转换的数据?

时间:2012-03-26 16:30:47

标签: symfony twig symfony-forms

ArrayToStringTransformer应用到表单字段后,是否可以获取原始数据类型?我在Symfony2文档here中找不到任何帮助。

也就是说,我需要Twing模板中的原始array数据类型。 {{ value }}仅包含已转换的数据。

class SMSType extends AbstractType
{

    public function buildForm(FormBuilder $builder, array $options)
    {

        $builder
            ->add('recipient', 'text', array('property_path' => false));
            ->add('tags',      'text');

        $builder->get('tags')
            ->appendClientTransformer(new ArrayToStringTransformer());
    }

    public function getDefaultOptions(array $options)
    {
        return array('required' => false);
    }

    public function getName() { return 'sms'; }

}

变换只是一个数组爆炸/内爆:

class ArrayToStringTransformer implements DataTransformerInterface
{

    public function transform($val)
    {
        if (null === $val) return '';

        return implode(',', $val);
    }

    public function reverseTransform($val)
    {
        if (!$val) return null;

        return explode(',', $val);
    }
}

1 个答案:

答案 0 :(得分:2)

不。转换后的值最终会作为表单的一部分传递给您的模板。我想你可以直接将原始标签直接传递给你的模板。