PHP,Symfony,JMSSerializerBundle。
我想将User
对象内的Organization
对象序列化为其ID,但当User
对象属于其他对象时,使用默认序列化。
public class Organization {
// type is User
$user; -> "123123"
...
}
public class Other {
// type is User
$user; -> "{id: 123123, name: John, ...}"
...
}
是否可以通过合理的努力?
答案 0 :(得分:3)
您可以从序列化中排除User
个对象,并添加一个将返回用户ID的虚拟属性(您可以将其称为userId,user或任何您想要的对象)。
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\Exclude;
public class Organization {
/**
* ...
* @Exclude
*/
$user;
/**
* @VirtualProperty
* @SerializedName("user")
*/
public function getUserId()
{
return $this->user->getId();
}
...
}