我根据需要定义了我的关系。用户有多张照片,而照片属于用户。
为什么我的查询会返回一个空的照片[]数组? (我试图获取给定用户的所有照片)
文档:http://bookshelfjs.org/#polymorphic
我的图片表结构如下:
图像
id (auto increment and primary key)
imageable_type (user is given)
imageable_id (user_id is given)
models.js
var image = db.Model.extend({
tableName: 'images',
imageable: function () {
return this.morphTo('imageable', user);
}
});
var user = db.Model.extend({
tableName: 'users',
hasTimestamps: true,
photos: function () {
return this.morphMany(image, 'imageable');
}
});
module.exports.user = user;
module.exports.image = image;
app.js
var user = require('./models').user;
var image = require('./models').image;
app.get('/photos', function (req, res) {
user.where('id' , 1).fetchAll({withRelated: ['photos']}).then(function (data) {
data = data.toJSON();
res.send(data);
});
});
答案 0 :(得分:-1)
问题解决了。
事实证明你需要在images表中使用复数表名,在这种情况下是users
。