Sails.js 模特协会
Sails.js model association
目前我的两个模型是这样的
module.exports = {
tableName: 'accounts',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true
},
name: {
type: 'string',
required: true
},
password: {
type: 'string',
required: true
},
email: {
type: 'string',
required: true
},
gang_name: {
type: 'string',
required: true
},
family_id: {
type: 'string',
required: true
},
world: {
type: 'string',
required: true
},
messages: {
collection: 'Messages',
via: 'for'
}
}
}
还有我的 Messages 模型
module.exports = {
tableName: 'messages',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true
},
title: {
type: 'string',
required: true
},
text: {
type: 'string',
required: true
},
for: {
model: 'Accounts',
required: true
},
by: {
type: 'integer',
required: true
}
}
};
我想将消息的 for 字段与帐户相关联,因此如果 'for' 字段为 = 11,则加载 ID 为 11 的帐户...目前我正在尝试这种方式
Accounts.find({ id: req.session.accountid }).populate('Messages').exec(function(err, data) {
console.log(data, err);
});
但是我收到一个错误
Attempting to populate an attribute that doesnt exist
您必须使用带有属性名称 ('messages'
) 的 populate
方法,而不是模型名称 ('Messages'
)。
目前我的两个模型是这样的
module.exports = {
tableName: 'accounts',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true
},
name: {
type: 'string',
required: true
},
password: {
type: 'string',
required: true
},
email: {
type: 'string',
required: true
},
gang_name: {
type: 'string',
required: true
},
family_id: {
type: 'string',
required: true
},
world: {
type: 'string',
required: true
},
messages: {
collection: 'Messages',
via: 'for'
}
}
}
还有我的 Messages 模型
module.exports = {
tableName: 'messages',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true
},
title: {
type: 'string',
required: true
},
text: {
type: 'string',
required: true
},
for: {
model: 'Accounts',
required: true
},
by: {
type: 'integer',
required: true
}
}
};
我想将消息的 for 字段与帐户相关联,因此如果 'for' 字段为 = 11,则加载 ID 为 11 的帐户...目前我正在尝试这种方式
Accounts.find({ id: req.session.accountid }).populate('Messages').exec(function(err, data) {
console.log(data, err);
});
但是我收到一个错误
Attempting to populate an attribute that doesnt exist
您必须使用带有属性名称 ('messages'
) 的 populate
方法,而不是模型名称 ('Messages'
)。