publicationState状态
通过 API 查询
接受的值为preview
、live
。
如查询 post 模块中,指定用户的已发布列表:
const uid = 'api::post.post';
strapi.entityService.findMany(uid, {
filters: { authorID: userID },
publicationState: 'live',
});
通过 API 创建状态为“已发布”的实例:
- 传参 publicationState 是没有效果的,需要设置
publishedAt
值为一个 Date 类型数据即可。 - 或者在数据结构定义-高级设置中,手动关闭
Draft/publish system
。
如创建一个新的 post:
module.exports = {
CreatePost: (ctx) => {
const userID = ctx.state.user.id;
const { title, desc, slug } = ctx.request.body;
const now = dayjs();
return strapi.entityService
.create(uid, {
data: {
title,
desc,
authorID: userID,
slug: slug || now.format('YYYYMMDDHHmmss'),
publishedAt: now.toDate(),
},
})
.then((entry) => {
return sanitize.contentAPI.output(entry, strapi.getModel(uid));
});
},
};