下面是我的GraphQL查询,用于从Strapi后端获取帖子。
请注意,我正在Nuxt应用程序上运行它。
现在我只想带post_status = "Publish"
post_status
是一个ENUM字段,具有草稿和发布两个选项
query GetPosts{
posts {
id
post_title
post_excerpt
post_featured_image{url}
post_content
post_category{category_name}
postingredients{ingredient{ingredient_name}, ingredient_unit}
updated_at
post_author{username}
post_slug
}
}
我不知道如何获得
post_status
值如何在post_status
上进行过滤,在那里我只能获得已发布的帖子。
query GetStatusEnum{
__type(name: "ENUM_POST_POST_STATUS") {
name
enumValues {
name
} } }
上述结果
{
"data": {
"__type": {
"name": "ENUM_POST_POST_STATUS",
"enumValues": [
{
"name": "Publish"
},
{
"name": "Draft"
}
]
}
}
}
答案 0 :(得分:0)
要将post_status
添加到原始请求中,只需将其添加到要获取的属性列表中即可。
{
posts {
id
post_title
post_status <- here /!\
}
}
此处是查询,用于获取以Publish
为post_status
{
posts(where: { post_status: "Publish" }) {
id
post_title,
post_status
}
}
您可以在trapi应用程序中使用GraphQL游乐场:
您将在页面的右侧看到一个docs
按钮,该按钮将向您显示创建GraphQL请求所需的所有信息。
答案 1 :(得分:0)
我有一个类似的场景(尽管我也使用了Prisma层,所以请记住这一点),我不确定是否可以过滤调用中的枚举值,但可以过滤返回的值。 / p>
const posts = [the array of all posts]
const isPublished = (post) => {
if (post.post_status.includes('Publish')) {
return post;
}
}
let publishedPosts = posts.filter(isPublished);
return publishedPosts;