如何在Strapi中将非用户可编辑的字段添加到内容类型?

时间:2019-03-23 10:56:13

标签: strapi

说我有一个post内容类型,其中包含以下4个字段:

  • title(字符串)
  • content(字符串)
  • slug(字符串)
  • author(关系)

如何添加第五个字段,该字段的值取决于上述4个字段之一,并且用户无法编辑?说,我想要一个wordCount字段,并将content字段中的单词数作为其值。我应该考虑探索哪个文件以包含此功能?

P.S .:就其价值而言,我正在使用MongoDB Atlas来满足我的数据库需求。

1 个答案:

答案 0 :(得分:1)

您将必须在内容类型中创建wordCount属性。

然后在左侧菜单的内容管理器链接中,您可以自定义编辑/创建页面的视图。在这里,您可以禁用删除该页面中的字段。

之后,您将进入./api/post/models/Post.js文件并更新以下功能。

如果您使用的是NoSQL数据库(Mongo)

beforeSave: async (model) => {
  if (model.content) {
    model.wordCount = model.content.length;
  }
},
beforeUpdate: async (model) => {
  if (model.getUpdate().content) {
    model.update({
      wordCount:  model.getUpdate().content.length
    });
  }
},

如果您使用的是SQL(SQLite,Postgres,MySQL)

beforeSave: async (model, attrs, options) => {
  if (attrs.content) {
    attrs.wordCount = attrs.content.length;
  }
},