Bookshelf.js 多态关系查询返回空数组
Posted
技术标签:
【中文标题】Bookshelf.js 多态关系查询返回空数组【英文标题】:Bookshelf.js polymorphic relation query returns empty array 【发布时间】:2015-11-12 02:42:16 【问题描述】:我根据需要定义了我的关系。一个用户有多张照片,一张照片属于一个用户。
为什么我的查询返回一个空的 photos[] 数组? (我正在尝试获取给定用户的所有照片)
文档: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】:问题解决了。
原来你需要在 images 表中使用复数表名,在本例中为 users
。
【讨论】:
想解释更多?以上是关于Bookshelf.js 多态关系查询返回空数组的主要内容,如果未能解决你的问题,请参考以下文章
Bookshelf.js belongsToMany 查询列错误