1

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

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

    TypeError: Cannot read property '0' of undefined

深入研究它,看起来那个生成器仍然将我的电子邮件视为对象而不是字符串。

知道如何强制 API 将电子邮件属性“视为”字符串而不是对象吗?

4

1 回答 1

2

您定义的数据模型是权威的。Hydra 文档中的类型反映了 PHP 类中的类型。在这里,email属性的类型是object。如果您将相关数据设置为string某处,则不再遵守此合同。Hydra 文档与返回的数据不同步。

您可以通过装饰服务来更改emailHydra 文档中的属性类型。api_platform.hydra.normalizer.documentation

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

于 2017-05-15T11:40:27.817 回答