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
。
我按要求定义了我的关系。一个用户有多张照片,其中一张属于一个用户。
为什么我的查询 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
。