在生成的 NelmioApiBundle 中,我的关系显示为 {} 而不是 0。
我对对象关系使用自定义 JMS 处理程序。(关系处理程序)
在我的关系中,我在给定的模型(ChildRelation)中指定了一个特殊的类作为类型。然后,处理程序管理从 Object 到 ID 的转换。这适用于 JMS Serializer 但不适用于相应的 Nelmio API Doc
我试图直接在 ChildRelation 上弄乱@SWG\Schema 但这没有用
在这个示例中,角色在技术上是一个继承自 Concrete 的 UserRole 对象。
## serializer/Model.DataObject.User.yml
AppBundle\Model\DataObject\User:
access_type: public_method
properties:
capabilities:
groups: [detailed, data]
type: array<string>
role:
groups: [detailed, list, data, create, update]
type: AppBundle\Model\DataObject\ChildRelation
// RelationHandler Serializer:
final class RelationsHandler implements SubscribingHandlerInterface
{
(...)
public function serializeConcreteToId(JsonSerializationVisitor $visitor, Concrete $concrete, array $type, SerializationContext $context
) {
return $concrete->getId();
}
}
我希望得到与调用端点时相同的模型。
{
"role": 271,
"capabilities": []
}
但大摇大摆的反应是这样的:
{
"capabilities": [],
"role": {}
}
有没有很好的方法来做到这一点?