2013-04-15 25 views
7

Serileştirmek için bir yöntem eklemeye çalışıyorum ancak JMS Serileştirme alanı göstermiyor.JMS Serialize @VirtualProperty çalışmıyor

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

Ve sonra:

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

Ben VirtualProperty nasıl kullanılacağına dair herhangi bir örnek görmedim.

Sözdizimi doğru mu? Yanlış olan ne?

Teşekkür ederiz.

cevap

1

Sorunu farkettim. "$ Ad" nesnesinden önce oluşturuldu. Benim hatam. Sanal özellik düzgün çalışıyor.

+0

Sorun neydi? Nasıl tamir ettin? Ya bir yaml config ile aynı şeyi deneyin, işe yaramıyor ... Teşekkürler. – Soullivaneuh

+1

Ok, nedenini buldu. Yaml yapılandırması oldukça farklı. Sanal özellikleri ayırmanız gerekir. Buraya bakın: http://jmsyst.com/libs/serializer/master/reference/yml_reference – Soullivaneuh

+1

Bu sorunun nerede olduğunu açıklıyor ama bu cümleyi anlamıyorum ... :( – martin