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

Bookshelf.js polymorphic relation query returns empty array

我按要求定义了我的关系。一个用户有多张照片,其中一张属于一个用户。

为什么我的查询 returns 是一个空的 photos[] 数组? (我正在尝试获取给定用户的所有照片)

文档:http://bookshelfjs.org/#polymorphic

我的图像 table 结构如下:

图片

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

问题已解决。

事实证明,您需要在图像 table 中使用复数 table 名称,在本例中为 users