API 平台 - 无法从没有自有属性的模式生成实体
API Platform - can't generate Entity from schema with no owned properties
我正在 运行 宁 API 平台模式类型生成器,但在 schema.org 中定义的类型苦苦挣扎,但没有自己的属性(http://schema.org/Duration).
当我 运行 vendor/bin/schema 生成类型时,我得到
[error] The property "potentialAction" (type "Duration") has an unknown type. Add its type to the config file.
[warning] The property "identifier" (type "Duration") has several types. Using the first one ("URL") or possible options("URL", "Text").
我的类型配置是:
types:
Thing:
properties:
name: ~
Duration: ~
Recipe:
properties:
cookTime: ~
recipeCuisine: ~
如果我定义了 Duration 从父项(例如 Thing->Name)继承的属性之一,它会生成 OK,但我不确定如何设置持续时间 属性(大概是文本)它。
也许我混淆了如何 use/define 没有自己属性的类型 - 有没有办法告诉模式 'This is just a single text value'?
我不熟悉 API 平台,但我认为您的问题可以从编写 Schema.org 结构化数据的角度回答:
提供文本值(推荐)
您通常不会将 Duration
指定为类型。只需提供一个文本值。
来自 Schema.org 的 cookTime
属性 示例(需要 Duration
值):
"cookTime": "PT1H",
Cook time: <meta itemprop="cookTime" content="PT1H">1 hour
Cook time: <meta property="cookTime" content="PT1H">1 hour
所以它的用法和data types类似。
提供项目价值
如果您 do 必须将其作为类型提供(无论出于何种原因),您可以将其作为 name
属性 的值提供,如没有其他合适的 属性 定义:
"cookTime": {
"@type": "Duration",
"name": "PT1H"
},
<div itemprop="cookTime" itemscope itemtype="http://schema.org/Duration">
Cook time: <meta itemprop="name" content="PT1H">1 hour
</div>
<div property="cookTime" typeof="Duration">
Cook time: <meta property="name" content="PT1H">1 hour
</div>
但这并不常见,消费者可能无法正确处理。例如,Google 的 SDTT 会报告一条警告,指出它无法将值 "PT1H" 理解为 ISO 8601 date/time,而将其指定为文本值时则不会报告任何警告。
我正在 运行 宁 API 平台模式类型生成器,但在 schema.org 中定义的类型苦苦挣扎,但没有自己的属性(http://schema.org/Duration).
当我 运行 vendor/bin/schema 生成类型时,我得到
[error] The property "potentialAction" (type "Duration") has an unknown type. Add its type to the config file.
[warning] The property "identifier" (type "Duration") has several types. Using the first one ("URL") or possible options("URL", "Text").
我的类型配置是:
types:
Thing:
properties:
name: ~
Duration: ~
Recipe:
properties:
cookTime: ~
recipeCuisine: ~
如果我定义了 Duration 从父项(例如 Thing->Name)继承的属性之一,它会生成 OK,但我不确定如何设置持续时间 属性(大概是文本)它。 也许我混淆了如何 use/define 没有自己属性的类型 - 有没有办法告诉模式 'This is just a single text value'?
我不熟悉 API 平台,但我认为您的问题可以从编写 Schema.org 结构化数据的角度回答:
提供文本值(推荐)
您通常不会将 Duration
指定为类型。只需提供一个文本值。
来自 Schema.org 的 cookTime
属性 示例(需要 Duration
值):
"cookTime": "PT1H",
Cook time: <meta itemprop="cookTime" content="PT1H">1 hour
Cook time: <meta property="cookTime" content="PT1H">1 hour
所以它的用法和data types类似。
提供项目价值
如果您 do 必须将其作为类型提供(无论出于何种原因),您可以将其作为 name
属性 的值提供,如没有其他合适的 属性 定义:
"cookTime": {
"@type": "Duration",
"name": "PT1H"
},
<div itemprop="cookTime" itemscope itemtype="http://schema.org/Duration">
Cook time: <meta itemprop="name" content="PT1H">1 hour
</div>
<div property="cookTime" typeof="Duration">
Cook time: <meta property="name" content="PT1H">1 hour
</div>
但这并不常见,消费者可能无法正确处理。例如,Google 的 SDTT 会报告一条警告,指出它无法将值 "PT1H" 理解为 ISO 8601 date/time,而将其指定为文本值时则不会报告任何警告。