gpt4 book ai didi

mysql - Sequelize 属于很多禁用相同的ID

转载 作者:行者123 更新时间:2023-11-29 16:29:43 26 4
gpt4 key购买 nike

在文档中挖掘了一段时间,找不到此选项。

场景:

User.belongsToMany(User, {
as: 'following',
through: 'follows',
foreignKey: 'follower_id',
otherKey: 'followed_id',
// disableSameId: true <--- the kind of option I'm looking for
});

在这个场景中,我正在寻找的行为是禁止用户关注自己。

目前我的实现很明显,在发出请求之前检查id1 !== id2,但仍然想知道这个可能的根快捷方式

有人知道吗?

最佳答案

找到了一个令我满意的解决方案:

搜索引导我here这让我为这个 rel-table

创建了一个模型

使用自定义验证器就成功了。

return sequelize.define('Follows',
{},
{
timestamps: true,
paranoid: false,
underscored: true,
freezeTableName: true,
tableName: 'follows',
validate: {
IdsShouldNotMatch() {
compare(this, 'Cannot follow yourself');
}
}
});


// model_helpers/compare.js
module.exports = (that, error) => {
let condition = Object.values(that.dataValues)
.map(v => Number(v))
.reduce((a, b) => a - b);
if (!condition) {
throw new Error(error);
}
};

关于mysql - Sequelize 属于很多禁用相同的ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54010175/

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