2012-03-26 8 views
0

Wäre es möglich, den ursprünglichen Datentyp nach dem Anwenden der ArrayToStringTransformer auf das Formularfeld zu erhalten? Ich kann keine Hilfe in Symfony2 Dokumentation here finden.Zugriff auf die ursprünglichen untransformierten Daten nach dem Anwenden eines DataTransformers?

Das heißt, ich brauche das Original array Datentyp in meinem Twing Vorlage. {{ value }} enthält nur die bereits transformierten Daten.

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'; } 

} 

Die Transformation wird nur ein Array Aufreißen/implodieren:

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); 
    } 
} 

Antwort

2

Nein. Der umgewandelte Wert ist das, was als Teil der Form zu Ihrer Vorlage übergeben endet werden. Ich nehme an, Sie explizit die Original-Tags direkt an Ihrer Vorlage passieren könnte.