作为一个简单的例子,我有一个带有以下字段的学说实体
id
name
description
我正在使用JMSSerializerBundle
,并且在大多数情况下运行良好,但是,如果我想让序列化数据(Json)包含未完全映射到我的实体的东西,该怎么办。
例如,如果我只希望返回描述的前50个字符,然后我想调用该字符,该怎么办short_description
?
我尝试将“排除策略”@Expose
用于公开方法,但是不支持此方法。
我将需要经常和许多不同的实体一起做这种事情,我想知道是否有人可以建议一个很好的干净方法。
我已经阅读了的整个文档,JMSSerializerBundle
也正在Internet上寻找解决方案,我可以考虑一些解决方案,但是生成的代码看起来有点脏。
注释@VirtualProperty
就是您要查找的内容(http://jmsyst.com/libs/serializer/master/reference/annotations#virtualproperty)。
例如:
namespace Some\Bundle\Entity;
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\SerializedName;
class MyEntity
{
private $description;
/**
* @VirtualProperty
* @SerializedName("short_description")
*/
public function getShortDescription()
{
return substr($this->description, 0, 50);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句