- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我正在使用一个函数加载我的模型:
module.exports = function(config) {
var db, files, modelPath, myDb, sequelize;
sequelize = new Sequelize(config.database, config.username, config.password, {
dialect: 'postgres',
host: config.host,
port: config.port,
logging: false,
define: {
charset: 'utf8',
collate: 'utf8_general_ci'
}
});
db = {};
modelPath = __dirname + "/models";
files = fs.readdirSync(modelPath);
_.each(files, function(file) {
var model;
if ('.coffee' === path.extname(file)) {
model = sequelize["import"](path.join(modelPath, file));
return db[model.name] = model;
}
});
Object.keys(db).forEach(function(modelName) {
if ('associate' in db[modelName]) {
return db[modelName].associate(db);
}
});
myDb = _.assign(db, {
sequelize: sequelize,
Sequelize: Sequelize
});
return myDb;
};
module.exports = function(sequelize, DataTypes) {
var User;
User = sequelize.define('User', {
name: {
type: DataTypes.STRING,
allowNull: false
},
username: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
validate: {
isEmail: true
}
},
password: {
type: DataTypes.STRING,
allowNull: false
},
status: {
type: DataTypes.ENUM('active', 'inactive'),
defaultValue: 'active'
},
api_key: {
type: DataTypes.STRING,
allowNull: true
}
}, {
instanceMethods: {
display: function() {
var user;
user = {
name: this.name,
email: this.email,
username: this.username,
active: this.active
};
return user;
}
}
}, {
classMethods: {
associate: function(models) {
return User.belongsToMany(models.Entity, {
through: 'UserEntity'
});
}
}
});
User.hook('beforeCreate', function(user, options, beforeCreateCb) {
var uniqueKey;
uniqueKey = (JSON.stringify(user)) + " " + (new Date()) + " " + (Math.random());
user.api_key = crypto.createHash('md5').update(uniqueKey).digest('hex');
return beforeCreateCb(null, user);
});
return User;
};
module.exports = function(sequelize, DataTypes) {
var Entity;
return Entity = sequelize.define('Entity', {
name: {
type: DataTypes.STRING,
allowNull: false
}
}, {
classMethods: {
associate: function(models) {
return Entity.belongsToMany(models.User, {
through: 'UserEntity'
});
}
}
});
};
myDb.User.find({
where: {
username: 'snakamoto'
}
}).then(function(dbUser) {
var entities;
should.exist(dbUser.id);
entities = dbUser.getEntities();
return done();
});
TypeError: Object [object SequelizeInstance] has no method 'getEntities'
2.0.1
。
最佳答案
这可能是自动复数的问题。 sequelize 文档的以下部分可能包含解决此问题的提示:
http://docs.sequelizejs.com/en/latest/docs/associations/#naming-strategy
可能您需要在关联中告诉 sequelize 实体的复数是什么样的,在您的情况下是“实体”。
祝你好运。
关于sequelize.js - Sequelize belongsToMany 关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480191/
我有两个模型:用户和经济事件。它们通过 UserEconomicActivity 关联(这是一个 BelongsToMany 关系)。在 User 模型中,我定义了这样的关联: this.belong
考虑下表: user id name client id name user_client user_id client_id rate ... 我希望我的 Contr
给定以下 belongsToMany 关系: 标签模型: class Tag extends Model { public function posts (){ return
假设我有以下模型: const Item = sequelize.define("Item", { active: { type: DataTypes.BOOLEAN, defaultValu
我使用了 Sequelize 并使用 belongsToMany() 设置了多对多关系。但是,当我查询出数据时,像这样: api.models.operator.find({ where:
在Laravel中定义多对多关系时,使用belongsToMany()或hasManyThrough()有什么区别? 例:UserAccountAccount_User 因此,用户通过Account_
我有两个带有数据透视表的表(用户和饮料),用户与配置文件表有 hasOne 关系,有没有办法将配置文件表附加到数据透视表并获取所有数据。 表格用户 id | name | email 表格配置文件 i
我有两个带有数据透视表的表(用户和饮料),用户与配置文件表有 hasOne 关系,有没有办法将配置文件表附加到数据透视表并获取所有数据。 表格用户 id | name | email 表格配置文件 i
我有两个表具有 belongsToMany 关系。数据透视表还包含一个名为 state 的列,它可以有 3 个不同的值。假设我的表是 Table1 和 Table2。 具有不同状态的相同Table1-
所以我有一个名为 thread_user 的数据透视表,并且有两个模型; User.php 和 Thread.php。 我的 User.php 文件中有这个: public function thre
我在 PostgreSQL 上使用 Sequelize 来存储属于组织的用户。组织拥有用户可以访问的设备。因此,从本质上讲,用户也通过他们的组织拥有设备。 我将其设置为每个设备都使用 organiza
我正在 Laravel 中实现多对多关系。这些实体是:用户角色和数据透视表 user_role Users ==== id name ..... roles ==== id role ... u
我试图建立多对多的关系,在这个例子中是用户和角色。 在用户模型中我得到了这个: public function roles() { return $this->belongsToMany('A
我有如下三个表: 用户 id|名称|用户名|密码 角色 编号|名称 用户角色 id|user_id|role_id 这些表通过 belongsToMany 进行通信。我想找到一种方法来选择“users
我的项目中有 belongsToMany 关系: 公共(public)函数产品() { 返回 $this->belongsToMany(Product::class,'order_products',
我有以下模型。 class Training extends \Eloquent { // Add your validation rules here public static $
所以我通过数据透视表 user_photo 在 Users 和 Photos 之间建立了多对多关系。我在我的用户模型中使用 belongsToMany('Photo')。然而,这里的问题是我的照片表中
我有这个给定的表结构: 如何使用 Eloquent 从我的“visita”类访问“curso.name”?我分配了多对多关系,但只能访问“turma.curso_id”,但我想得到类似 $visita
使用 sequelize,我期望这一行: m.User.belongsToMany(m.Company, {through: 'UserCompany'}); 在我的数据库中生成一个名为“user_c
我有两个表:categories 和 videos,然后我有一个数据透视表,因为它们是 belongsToMany 关系。 我想要做的是获取所有视频,其中没有一个视频实例属于多个类别之一。 例如 视频
我是一名优秀的程序员,十分优秀!