2012-03-26 3 views
0

ArrayToStringTransformerをフォームフィールドに適用した後に元のデータタイプを取得することは可能でしょうか? Symfony2のドキュメントhereで助けを見つけることができません。DataTransformerを適用した後の元の非変換データへのアクセス?

つまり、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); 
    } 
} 

答えて

2

いいえ。変換された値は、フォームの一部としてテンプレートに渡されるものです。オリジナルのタグを明示的にテンプレートに直接渡すことができると思います。

関連する問題