【发布时间】:2026-01-28 19:20:04
【问题描述】:
我在数据库中有几个表,有关系。例如:
user table
- id
- name
- email
- created_at
orders table
- id
- user_id
- status
- created_at
order_items table
- id
- order_id
- item_id
- count
items table
- id
- article
- name
- ...
最后我需要将数据转换到这个视图 - 订单:
[
{
"id": 1,
"status": "created",
"user": {"id":1, "name":"Max"},
"items":[{"id":1, "name":"Banana", "count": 2}, {...item two}]
},
{
.. order two
}
]
某些字段将被隐藏(created_at 等),并且所有选择的模型都与其相关。
所以,我可以做类似的事情
$userOrders = Orders::where([
'user_id' => $request->user()->id
])
->select(['id'])
->with('orders.items') // <<<< oops nested relations
->get();
但是问题:
- 如何使用嵌套关系进行选择
- 如何从嵌套关系中只保留需要的字段(当字段列表取决于场景时,最好基于模型场景)
【问题讨论】:
标签: laravel laravel-5.2 lumen