API-PLATFORM - 对象在端点处序列化为字符串的模型

API-PLATFORM - model with object serialized to string at endpoint

我在使用 api-platform-generate-crud.
生成 React 组件时遇到了问题 模型有 属性 即对象电子邮件。 我有使我的电子邮件对象成为字符串的序列化程序。 API 端点正在提供字符串。

它适用于 GET & POST。
当我尝试生成 React 组件时,错误消息是

    TypeError: Cannot read property '0' of undefined

深入研究,生成器似乎仍然将我的 email 视为对象而不是字符串。

知道如何强制 API 将 'see' 作为字符串而不是对象通过电子邮件发送给 属性 吗?

您定义的数据模型是权威的。 Hydra 文档中的类型反映了 PHP 类 中的类型。 这里,email 属性 的类型是 object。如果你在某处将相关数据设置为string,你就不再尊重这个契约了。 Hydra 文档与返回的数据不同步。

您可以通过 decorating api_platform.hydra.normalizer.documentation 服务更改 Hydra 文档中 email 属性 的类型。

但我建议您的实体的 PHP 类' 结构尽可能接近通过 API 公开的结构。 您的 类 应该反映 API 的输出。您可以使用自定义数据提供程序来处理更复杂的数据结构(例如:ORM 实体),然后再组合结构以公开。