например, я получил 2 таблицы;Как получить конкретные столбцы из таблицы объединений, используя withRelated bookshelf
table1 {Id, Name, Description}
table2 {Id, Table1Id, Name, Amount}
С книжной полкой, когда я использую withRelated что-то типа;
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs']})
.then(function(rows) {
callback(null, rows);
});
Я ожидал, что мой результат что-то понравится;
{results: [{Id: '', Name: '', Description: '', Childs: [{Id: '', Name: '', Amount: 123}]}]}
Я не хочу, чтобы получить Table1Id в списке Чайлдс. Как указать, какие столбцы в моем выпуске?
ОБНОВЛЕНИЕ
Мои модели;
table1 = bookshelf.Model.extend({
tableName: 'table1',
Childs: function() {
return this.hasMany(table2, 'Table1Id');
}
});
table2 = bookshelf.Model.extend({
tableName: 'table2',
Parent: function() {
return this.belongsTo(Table1);
}
});
Если я не выбрать Table1Id
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs':function(qb) {
qb.select('Id', 'Name', 'Description');
}]})
.then(function(rows) {
callback(null, rows);
});
затем возвращаются пустыми Чайлдс [].
Должно быть;
new table1({Id: 1})
.fetchAll({
withRelated: ['Childs':function(qb) {
qb.select('Id', 'Table1Id', 'Name', 'Description');
}]})
.then(function(rows) {
callback(null, rows);
});
Это не работает, если я не выбрал родительский идентификатор: Спасибо. –
Можете ли вы обновить свой вопрос с новым запросом, чтобы я мог видеть, что вы пробовали? – uglycode