2013-04-15 12 views
7

Sto provando ad aggiungere un metodo per serializzare, ma JMS Serialize non mostra il campo.JMS Serialize @VirtualProperty non funziona

use JMS\Serializer\Annotation\Groups; 
use JMS\Serializer\Annotation\VirtualProperty; 
use JMS\Serializer\Annotation\SerializedName; 

class Ads 
{ 
    /** 
    * @VirtualProperty 
    * @Type("string") 
    * @SerializedName("Foo") 
    * @Groups({"manage"}) 
    */ 
    public function foo(){ 
     $foo = 'foo'; 
     return $foo; 
    } 
    ... 
} 

E poi:

use JMS\Serializer\SerializationContext; 
use JMS\Serializer\SerializerBuilder; 

... 

$context = new SerializationContext(); 
$context->setGroups(array('manage')); 

$serializer = JMS\Serializer\SerializerBuilder::create()->build(); 
$jsonContent = $serializer->serialize($ad, 'json', $context); 

non ho visto alcun esempio di come utilizzare VirtualProperty.

La sintassi è corretta? Che c'è?

Grazie.

risposta

1

Ho notato il problema. È stato creato prima dell'oggetto "$ annuncio". Colpa mia. La proprietà virtuale funziona correttamente.

+0

Qual era il problema? Come l'hai aggiustato? Prova lo stesso con una configurazione yaml, non funziona neanche ... Grazie. – Soullivaneuh

+1

Ok trovato perché. La configurazione di Yaml è abbastanza diversa. Devi separare le proprietà virtuali. Vedi qui: http://jmsyst.com/libs/serializer/master/reference/yml_reference – Soullivaneuh

+1

Questo dovrebbe spiegare dove era il problema ma non capisco quella frase ... :( – martin