Loopbackjs 如何使用mysql数据源从环回中的自定义用户模型访问角色模型
Windows 7 x64 环回cli 3.10 我已经看到了一些其他相关问题,但它们并没有解决我的问题。我已经阅读了有关如何在另一个模型中访问不相关模型的文档,但在我的情况下,它将不起作用 我希望能够访问用户模型中的角色模型,如中所示Loopbackjs 如何使用mysql数据源从环回中的自定义用户模型访问角色模型,loopbackjs,Loopbackjs,Windows 7 x64 环回cli 3.10 我已经看到了一些其他相关问题,但它们并没有解决我的问题。我已经阅读了有关如何在另一个模型中访问不相关模型的文档,但在我的情况下,它将不起作用 我希望能够访问用户模型中的角色模型,如中所示 let models = require('../../server/model-config.json'); let app = require('../../server/server.js'); module.exports = function (us
let models = require('../../server/model-config.json');
let app = require('../../server/server.js');
module.exports = function (user) {
let Role = app.models.Role;
let RoleMapping = app.models.RoleMapping;
}
以上结果都是未定义的
作为一个引导脚本,这是可行的,但我更希望它都在用户模型中
module.exports = function (app) {
var User = app.models.user;
var Role = app.models.Role;
var RoleMapping = app.models.RoleMapping;
RoleMapping.belongsTo(User);
User.hasMany(RoleMapping, {foreignKey: 'principalId'});
Role.hasMany(User, {through: RoleMapping, foreignKey: 'roleId'});
};
我的关系被定义为
user.json
"relations": {
"roles": {
"type": "hasMany",
"model": "Role",
"foreignKey": "principalId",
"through": "RoleMapping"
}
}
我不确定你的确切意思,但你可以访问一旦所有的模型加载。有以下几点
let models = require('../../server/model-config.json');
let app = require('../../server/server.js');
module.exports = function (user) {
app.on('started', function(){
let Role = app.models.Role;
let RoleMapping = app.models.RoleMapping;
});
}
相关链接:您不需要
server.js
文件。您可以通过user
model-user.app.models.Role
访问Role
模型。同样,你也可以找到你的角色映射模型。是的,这就是我要找的,有趣的是,我在读这篇文章之前发现了这一点。我想知道,是否可以仅使用关系而不是“开始”获取上述信息,因为您应该能够访问任何相关模型。据我所知,相关模型仅用于在查询时获取相关记录。是的,这就是我正在尝试做的,查询用户模型类中的用户/角色信息@Razmjo给出了一个有效的解决方案,我只是想知道是否还有其他方法,因为文档说,如果你建立了关系,你应该能够访问另一个模型中的数据。我试过但没有成功。