如何使用 mysql 数据源从环回中的自定义用户模型访问角色模型

How do you access the Roles model from a custom user model in loopback using mysql datasource

Windows 7 x64 环回-cli 3.10

我看到了一些其他相关问题,但它们没有解决我的问题我已经阅读了有关如何在另一个模型中访问不相关模型的文档,但在我的情况下它不起作用

我希望能够访问用户模型中的角色模型,如

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;
  }); 
}

相关link: