2013-04-15 22 views
7

Tôi đang cố thêm một phương thức để tuần tự hóa, nhưng JMS Serialize không hiển thị trường.JMS Serialize @VirtualProperty không hoạt động

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

Và sau đó:

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

Tôi chưa thấy bất kỳ ví dụ về cách sử dụng VirtualProperty.

Cú pháp có đúng không? Chuyện gì thế?

Cảm ơn bạn.

Trả lời

1

Tôi đã nhận thấy sự cố. Đã tạo trước đối tượng "$ ad". Lỗi của tôi. Thuộc tính ảo hoạt động đúng cách.

+0

Sự cố là gì? Làm thế nào bạn sửa chữa nó? Hãy thử cùng với một cấu hình yaml, không làm việc, hoặc ... Cảm ơn. – Soullivaneuh

+1

Ok tìm thấy lý do. Cấu hình Yaml khá khác nhau. Bạn phải tách các thuộc tính ảo. Xem tại đây: http://jmsyst.com/libs/serializer/master/reference/yml_reference – Soullivaneuh

+1

Đây là nghĩa vụ phải giải thích đâu là vấn đề nhưng tôi không hiểu câu đó ... :( – martin