我正在使用Strapi v.3.1.3,并试图为博客建立一个分页系统。
当前加载博客文章时,我运行了一个查询,查询结果是由slug查找的。
_slug.vue:
apollo: {
post: {
prefetch: false,
query: postQuery,
variables() {
return {
slug: this.$route.params.slug,
}
}
}
},
post.gql:
query Post($slug: String!) {
post: postBySlug(slug: $slug) {
id
title
content
slug
updatedAt
createdAt
published_at
}
}
./ api / post / config / schema.graphql.js:
const { sanitizeEntity } = require('strapi-utils');
module.exports = {
query: `
postBySlug(id: ID slug: String): Post!
`,
resolver: {
Query: {
postBySlug: {
resolverOf: 'Post.findOne',
async resolver(_, { slug }) {
const entity = await strapi.services.post.findOne({ slug });
return sanitizeEntity(entity, { model: strapi.models.post });
}
}
}
}
}
这对于通过slug加载单个帖子非常有用,但是现在我不确定在确定上一个/下一个帖子时应该采用的方法。我什至不完全确定Strapi GraphQL目前可以处理类似的事情。
我可以查询所有帖子,因为这使我可以使用limit
和start
,但是如果我使用子弹而不是ID,那么我如何知道在页面加载时查找哪个帖子?