symfony hateoas 和 jms 序列化

symfony hateoas and jms serialization

我有一个实体客户,我想同时拥有 Hatoas 链接和自定义序列化

/**
 * Customer ORM Entity
 *
 * @package AppBundle\Entity
 *
 * @Hateoas\Relation("self", href = @Hateoas\Route("get_customers", parameters = { "customer" = "expr(object.getId())" }))
 * @Hateoas\Relation("customers", href = @Hateoas\Route("cget_customers"))))
 */

这是 hateoas 链接的注释

AppBundle\Entity\Customer:
    exclusion_policy: ALL
    virtual_properties:
        getFullName:
            serialized_name: full_name
            type: string

这是我用于 jms 序列化的 yaml 配置,但出于某种原因,它也删除了 hateoas 链接。

我怎样才能取回它?告诉序列化程序不要删除 _links 属性?

Hateoas documentation 中说:

Important: you must configure both the Serializer and Hateoas the same way. E.g. if you use YAML for configuring Serializer, use YAML for configuring Hateoas.

例如,使用YAML format进行配置,应该可以解决您的问题。

正如@takeit 所说,您应该使用与序列化程序相同的配置。对于您的示例,试试这个:

AppBundle\Entity\Customer:
    exclusion_policy: ALL
    virtual_properties:
        getFullName:
            serialized_name: full_name
            type: string
    relations:
        -
        href:
          route: get_customers
          parameters:
              customer: expr(object.getId())
  #       absolute: 0
        customers:
          route: cget_customers

希望对您有所帮助