Str*_*ch0 5 javascript content-management-system contentful axios
我正在尝试根据条目的名称自定义字段检索单个条目。
我尝试过使用 JS SDK 和各种选项:
client.getEntry("entryID")
// .where("content_type", "Restaurant")
// .where("fields.name[match]", "RestaurantName")
// .all()
.then(data => console.log('data', data))
.catch(err => console.log('err', err))
Run Code Online (Sandbox Code Playgroud)
但根据返回的错误,这表明我只能使用.getEntry并传入条目 ID。
我还考虑过使用 发出 HTTP 请求,axios但遇到了类似的问题,只能检索完整的条目列表或根据条目 ID 进行过滤。
我可以通过 `field.name === "Slug" 或我添加的其他自定义字段来获取吗?
小智 6
目前使用 getEntry 获取条目的唯一方法是传入 sys.id 值。当我们向 Contentful 请求任何内容时,我们都会使用单个控制器。这允许我们设置错误消息,将返回的数据转换为我们想要的格式等。我们向控制器添加了我们自己的 getEntry 辅助函数,可以通过
contentfulController.getEntries({
content_type: 'indexPage',
'fields.slug[match]': slug,
include: 3,
locale: language,
});
Run Code Online (Sandbox Code Playgroud)
然后在我们自己的 getEntry 函数中,我们获取数组中的第一个,并返回该对象,因为我们总是知道我们将返回一个。
但值得注意的是,如果 slug 中有子字符串,这可能会导致问题。假设您有两个带有蛞蝓的物品:
/resource
/resourcelisting
Run Code Online (Sandbox Code Playgroud)
如果您查询 'fields.slug[match]': '/resource',它将返回结果中的两项,因此您还应该检查哪一项具有您想要的实际 slug,而不是其中的一部分。
| 归档时间: |
|
| 查看次数: |
6474 次 |
| 最近记录: |