Добрый день.
Есть таблица Questions в которой хранятся вопросы и в ней же есть столбец author_question - в котором хранится id пользователя.
Есть таблица Users в которой хранятся пользователи и там есть столбец username, который содержит имя пользователя.
При запросе к БД мне нужно получить список с вопросами и я его успешно получаю. Но в этом списке присутствует id пользователя и это логично т.к. в таблице Questions в столбце author_question хранится именно id.
Вопрос: Как мне в одном запросе по этому id при получении списка вопросов сразу получить и имя пользователя из таблици Users.
Что делаю: Файл model.js
import bookshelf from './bookshelf';
export const Users = bookshelf.Model.extend({
tableName: 'users'
});
export const Questions = bookshelf.Model.extend({
tableName: 'questions',
author_question: function() {
return this.belongsTo(Users, 'username');
}
});
Файл(роут) с самим запросом:
getQuestions.post('/', (req, res) => {
Questions.query(function(db) {
}).fetchAll({ withRelated:['author_question'] })
.then(questions => {
if (questions) {
res.json({ questions });
} else {
res.status(401).json({ errors: { form: 'Invalid Credentials' }
});
}
});
});
В итоге получаю ошибку : Unhandled rejection Error: Undefined binding(s) detected when compiling SELECT query: select "users".* from "users" where "users"."id" in (?)
Я по ходу где-то с самим синтаксисом напортачил и не понял принцип построения связей в bookshelf. Разъясните с указанием на ошибки. Спасибо.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости