【发布时间】:2018-08-20 20:27:18
【问题描述】:
我的查询从站点返回了正确的数据,我想更改返回格式但我没有得到它。
我的查询
const message = Message.query().where('group_id', group_id).limit(limit).orderBy('id', 'desc')
.with('user').fetch()
这是当前结果
[{
"id": 39,
"user_id": 11,
"group_id": 43,
"message": "asdfasdfsadf",
"created_at": "2018-08-20 15:51:39",
"updated_at": "2018-08-20 15:51:39",
"user": {
"id": 11,
"username": "a",
"email": "a",
"password": "$2a$10$f3fMuqVxV4UZqAMX4xIXiukLc1EelZjKhG8jm.CSmTAWyyZYLmR66",
"created_at": "2018-08-18 08:46:46",
"updated_at": "2018-08-18 08:46:46"
}
}]
我想返回以下内容
[{
"_id": 39,
"user_id": 11,
"group_id": 43,
"text": "asdfasdfsadf",
"createdAt": "2018-08-20 15:51:39",
"user": {
"_id": 11,
"name": "a",
}
}]
如果我将.select ([]) 放在查询的开头,它不会加载用户。
看到我在字段中进行了以下更改
文本消息 _id 的 id 并删除一些
【问题讨论】:
-
这里有什么问题?只需创建一个包含您需要的元素的新对象并返回它
-
我不喜欢流行一个对象,因为它来自银行。作为 ORM,您应该可以选择重命名字段,对吧?
-
我试过这个:
const message = Message.query (). Select (['id as _id', 'message as text', 'created_at as createdAt']). where ('group_id', group_id) .limit (limit) .orderBy ('id', 'desc') .with ('user', (sel) => { sel.select ('*') from ('users') }) fetch ()没用 -
两种方式:1.在
User模型中配置隐藏字段。 2.使用.with('user', query => {query.select('id', 'name')})
标签: javascript orm adonis.js