gpt4 book ai didi

javascript - Bookshelf js fetch withRelated选项返回空关系对象

转载 作者:行者123 更新时间:2023-11-30 16:49:54 25 4
gpt4 key购买 nike

我有一个图像模型和一个位置模型。图像模型包含位置的外键。要获取我使用的结果:

fetch({withRelated: ['location']};

我收到以下结果:

{
"id": 24,
"created_by": 1,
"location_id": 202,
"location": {}
}

但我想要这样的东西:

{
"id": 24,
"created_by": 1,
"location": {....}
}

我的图像模型:

objectProperties = {
tableName: 'images',
location: function () {
return this.hasOne(location, 'id');
}
};

classProperties = {};

imageModel = bookshelf.Model.extend(objectProperties, classProperties);

和我的位置模型:

objectProperties = {
tableName: 'locations',
images: function () {
return this.belongsToMany(image, 'location_id');
}
};

classProperties = {};

locationModel = bookshelf.Model.extend(objectProperties, classProperties);

为什么我收到一个空的位置对象?

最佳答案

看下面的例子


person: id_person, name, id_country withRelated country: id_country, name, id_province and withRelated province: id_province, name

确定生成模型人、国家和省份

人.js

'use strict'
const Bookshelf = require('../commons/bookshelf');
const Country = require('./country');
let Person = Bookshelf.Model.extend({
tableName: 'person',
idAttribute: 'id_person',
country: function() {
return this.belongsTo(Country, 'id_country');
}
});
module.exports = Bookshelf.model('Person', Person);

国家.js

'use strict'
const Bookshelf = require('../commons/bookshelf');
const Province = require('./province');
let Country = Bookshelf.Model.extend({
tableName: 'country',
idAttribute: 'id_country',
province: function() {
return this.belongsTo(Province, 'id_province');
}
});
module.exports = Bookshelf.model('Country', Country);

省.js

'use strict'
const Bookshelf = require('../commons/bookshelf');
let Province = Bookshelf.Model.extend({
tableName: 'province',
idAttribute: 'id_province'
});
module.exports = Bookshelf.model('Province', Province);

使用集合 person.js

'use strict'
const Bookshelf = require('../commons/bookshelf');
const Person = require('../models/person');
const Persons = Bookshelf.Collection.extend({
model: Person
});
module.exports = Persons;

带有 Controller person.js

'use strict';
const Persons = require('../collections/persons');
const Person = require('../models/person');
function getPersons(req, res, next) {
Motivos.query({})
.fetch({
withRelated: [
'country',
'country.province'
] })
.then(function(data) {
return res.status(200).json({
error: false,
data: data
});
});
}

json是

{
"error":false,
"data":[{
"id_person": 1,
"name": "leonardo",
"id_country": 3,
"country":{
"id_country": 3,
"name":"venezuela",
"id_province": 2,
"province":{
"id_province": 2,
"name":"lara"
}
}
},{...}]
}

关于javascript - Bookshelf js fetch withRelated选项返回空关系对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30686977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com