【发布时间】:2018-10-01 16:30:02
【问题描述】:
假设我有 2 张桌子。 users & books。
桌子看起来像这样
用户:
id, name
1, Jone
2, Doe
书籍:
id, name, user_id
3, Dummy book1, 1
4, Dummy book2, 1
5, Dummy book3, 2
当我尝试归还属于这样一个用户(例如用户 1)的所有书籍时
$query->where('id', 1)->join('books', 'users.id', '=', 'books.user_id');
我得到 JSON,但问题是 JSON 显示 id 的书籍不是这样的用户:
id: 3,//this is the book id not the user id
user_id: 1
...
...
id: 4,
user_id: 1
如何让我的查询将 id 显示为像这样的用户 id
id:1
... whatever
更好的是,我如何操作整个 JSON 以便我可以重命名键?例如 books.name 到 books_name 和 users.name 到 user_name
我不喜欢默认的 JSON 返回
我问这个的原因之一是如果您加入 2 个或更多表,id 将永远是最后一个table.id
【问题讨论】:
-
你能发布整个查询吗?如果您没有明确说明要选择哪些属性,SQL 将无法知道您是想要
users.id还是books.id,因为您正在加入这些表。 -
你可以使用
->select(DB::raw("users.id AS user_id",), ...other rows you want to get back from the DB) -
@Derek 这是一个更清晰的答案,它让我可以控制查询返回的内容。把它作为答案,这样我就可以选择它作为正确的答案。
-
我很高兴能帮上忙,@Yamona!