Bookshelf.js多态关系查询返回空数组

时间:2015-11-12 02:42:17

标签: node.js bookshelf.js

我根据需要定义了我的关系。用户有多张照片,而照片属于用户。

为什么我的查询会返回一个空的照片[]数组? (我试图获取给定用户的所有照片)

文档: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);
    });
});

1 个答案:

答案 0 :(得分:-1)

问题解决了。

事实证明你需要在images表中使用复数表名,在这种情况下是users