gpt4 book ai didi

node.js - KeystoneJS关系类型,通过字段值限制可用项

转载 作者:搜寻专家 更新时间:2023-10-31 22:23:35 25 4
gpt4 key购买 nike

是否可以通过指定值条件来限制 KeystoneJS 关系类型中可用的显示选项?

基本上,一个模型有两组数组字段,而不是让管理员用户从字段中选择任何项目,我想限制为仅属于特定集合 _id 的项目。

最佳答案

不确定这是否正是您正在寻找的功能,但您可以在 Relationship 字段上指定一个 filter 选项作为对象,它将过滤结果所以只显示匹配的那些。

filter 对象中的每个属性都应该是在相关架构中匹配的值,或者它可以是与另一个 path 中的值匹配的动态值架构(您在路径前加上 :)。

例如:

用户架构

User.add({
state: { type: Types.Select, options: 'enabled, disabled' }
});

后架构

// Only allow enabled users to be selected as the author
Post.add({
author: { type: Types.Relationship, ref: 'User', filter: { state: 'enabled' } }
});

或者举一个动态示例,假设您对 PostsUsers 都有一个 role 设置。您只想匹配与 post 具有相同 role 的作者。

用户架构

User.add({
userRole: { type: Types.Select, options: 'frontEnd, backEnd' }
});

后架构

Post.add({
postRole: { type: Types.Select, options: 'frontEnd, backEnd' },
// only allow users with the same role value as the post to be selected
author: { type: Types.Relationship, ref: 'User', filter: { userRole: ':postRole' } }
});

请注意,这实际上并未实现为后端验证,它只是在管理界面中实现。因此,它更像是一种可用性增强而非限制。

关于node.js - KeystoneJS关系类型,通过字段值限制可用项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com