joh*_*ick 2 content-management-system npm strapi
Strapi 版本:v4\n操作系统:macOS\n数据库:MySQL\n节点版本:16.15\nNPM 版本:5.8.8
\n我正在尝试根据其他字段中的值填充字段。\n示例:我有一个内容类型,其中字段城市 = 孟买,国家/地区 = 印度,现在我需要第三个字段,称为市场,其值应为 Mumbai - India (即城市字段的值 + \xe2\x80\x9c-\xe2\x80\x9d + 国家/地区字段的值)。
\n我对 Strapi 比较陌生,仍在探索该工具,有人可以帮我吗?
\n借助 Strapi 的Model Lifecyle Hooks可以非常简单地实现这一点。
第1步:
首先city,county通过market.Content-Type builder
第 2 步:
现在,您需要创建该字段read-only以确保没有人可以通过管理 UI 手动填充该字段。您可以通过访问收藏中的任何条目,然后单击Configure the view右侧窗格中的选项来完成此操作。
第 3 步:
接下来,单击该market字段的编辑图标。您将看到一个类似于以下屏幕截图的弹出窗口。将该字段设为可编辑false并单击finish。完成此操作后,请确保单击Save页面右上角显示的按钮以永久保存更改。
步骤 4:
接下来,覆盖模型的beforeCreate&beforeUpdate生命周期挂钩,以在创建/更新条目时自动填充市场价值。为此,您必须在以下文件夹中创建生命周期.js 文件:./api/[api-name]/content-types/[content-type-name]/
假设您的收藏名称是Student。
// src/api/student/content-types/student/lifecycles.js
module.exports = {
beforeCreate(event) {
if (event.params.data.city && event.params.data.country) {
const { city = "", country = "" } = event.params.data;
event.params.data.market = city + " - " + country;
}
},
beforeUpdate(event) {
if (event.params.data.city && event.params.data.country) {
const { city = "", country = "" } = event.params.data;
event.params.data.market = city + " - " + country;
}
},
};
Run Code Online (Sandbox Code Playgroud)
第5步:
就是这样!重新启动您的 Strapi 服务器并尝试在您的集合中创建或更新新条目。market它应该根据city&值自动填充值country。
| 归档时间: |
|
| 查看次数: |
3368 次 |
| 最近记录: |