这是我想要做的:
Article
有两个属性id
和title
序列化时,我想附加一些信息,以便序列化结果如下所示:
<article>
<id>1</id>
<title>Lorem ipsum</title>
<slug>1-lorem-ipsum</slug>
</article>
如您所见,结果附加了<slug>
元素,该元素实际上不是Article
对象的属性。
我试图深入研究代码,并尝试编写自定义序列化处理程序。我尝试了几个策略,比如追加动态对象属性,但它永远不会被序列化。我在stdClass
中读到了类似的问题,我认为同样的问题适用,此属性不存在元数据,因为它在实例化后已动态添加到对象中。
然后我决定创建一个新的XML元素,但是如果我返回我新创建的元素,那么这是唯一被序列化的元素,它会产生类似的结果:
<article>
<slug>1-lorem-ipsum</slug>
</article>
我也尝试返回整个文档,但是会导致错误(预计会出现DOMElement)。
我很困惑,任何帮助都会非常感激。
答案 0 :(得分:2)
我遇到了类似的问题,自动将Link rel添加到每个序列化对象。我最终决定在要序列化的实体中创建一个Link实体和一个关联。 你可以用slug做同样的事情。
这具有额外的优点,即能够动态编辑链接,例如,网址已更改。