如何保持父表可用

how do I keep the parent table available

本文关键字:何保持      更新时间:2024-02-09

我有两种型号:UserPhone

User模型具有一个名为Phone_id的字段,该字段由Phone.id字段填充。

我正在尝试循环浏览所有电话,并显示电话名和相关的用户分机号。

然而,由于回调(我认为),当我使用getUser方法的成功方法时,phone对象已经不见了。

代码如下:

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');
Phone.hasOne(User,{ foreignKey: 'Phone_id'});
Phone.findAll().success(function(phones){
  for (var i = 0; i < phones.length; i++) {
    phones[i].getUser().success(function(user){
      console.log(xxxx.Name, user.Extension);
    });
});

如何在console.log语句中显示电话名和用户扩展名iow,我需要用什么来代替xxxx?

谢谢!

未测试,但类似

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');
Phone.hasOne(User,{ foreignKey: 'Phone_id'});
Phone.findAll().success(function(phones){
  phones.forEach(function(phone) {
    phone.getUser().success(function(phone) {
      return function(user){
        console.log(phone.Name, user.Extension);
      }
    }(phone))
  })
});

您想要做的是:

var User = sequelize.import(__dirname + '/../models/User.js');
var Phone = sequelize.import(__dirname + '/../models/Phone.js');
Phone.hasOne(User,{ foreignKey: 'Phone_id'});
Phone.findAll().success(function(phones){
  phones.forEach(function(phone) {
    phone.getUser().success(function(user){
      console.log(phone.Name, user.Extension);
    });
  })
});