2012-09-02 2 views
1
여기

는 내가하고 싶은 것입니다 : (JMSSerializerBundle을 사용하여 직렬화 할 때 객체에 요소를 추가하는 방법은 무엇입니까?

  1. 내가 객체를했습니다,의 두 가지 특성 id와 나도 XML 또는 JSON에서, 그것은 JMSSerializerBundle를 사용하여 직렬화 할 title
  2. Article을 가정 해 봅시다 그것을하지만, 해야 직렬화하는 동안 직렬화 된 결과는 다음과 같습니다 있도록
  3. , 나는 몇 가지 정보를 추가 할) 지원되는 모든 포맷에 적용

    <article> 
        <id>1</id> 
        <title>Lorem ipsum</title> 
        <slug>1-lorem-ipsum</slug> 
    </article> 
    

실제로 알 수 있듯이개체의 속성이 아닌 <slug> 요소가 결과에 추가되었습니다.

코드에서 다이빙을 시도하고 사용자 지정 serialization 처리기를 작성하려고했습니다. 동적 객체 속성을 추가하는 것과 같은 몇 가지 전략을 시도했지만 직렬화되지는 않습니다. stdClass과 비슷한 문제를 읽고 동일한 문제가 적용된다고 생각합니다. 메타 데이터는 인스턴스화 후 객체에 동적으로 추가되었으므로이 속성에 존재하지 않습니다.

<article> 
     <slug>1-lorem-ipsum</slug> 
    </article> 

나는 또한을 반환하려고 :

난 후, 새로운 XML 요소를 만들기로 결정,하지만 난 내 새로 만든 요소를 ​​반환 할 경우,이 직렬화 얻을 수있는 유일한이며 같은 결과 전체 문서하지만 오류가 발생합니다 (DOMElement가 필요합니다).

저는 조금 붙어서 도움이 될만한 사람이 많습니다.

+1

안녕하세요, 직렬화 된 사용자에게 'avatar_url' 속성을 추가하는 처리기를 작성했습니다. https://github.com/adrienbrault/SUPINFO-B3-YouFood-Server/blob/master/src/YouFood/ ApiBundle/Serializer/Handler.php – AdrienBrault

답변

2

각 직렬화 된 객체에 링크 rel을 자동으로 추가하는 것과 비슷한 문제가있었습니다. 나는 연재 될 엔티티에서 Link 엔티티와 이것에 대한 연관성을 만드는 것에 마침내 합의했다. 슬러그로도 똑같이 할 수 있습니다.

이렇게하면 링크가 동적으로 편집 될 수 있다는 추가적인 이점이 있습니다. URL이 변경되었습니다.

관련 문제