Laravel Lumen如何从模型集合构建序列化结构?

Laravel Lumen如何从模型集合构建序列化结构?,laravel,laravel-5.2,lumen,Laravel,Laravel 5.2,Lumen,我在DB中有几个表,它们之间有关系。例如: 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 - ... 最后,我需要将数据转换为这个视图- 订单: 某些字段将被隐藏(创建时等),

我在DB中有几个表,它们之间有关系。例如:

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
- ...
最后,我需要将数据转换为这个视图- 订单:

某些字段将被隐藏(创建时等),所有选择的模型都将与其关联

所以,我可以做一些类似的事情

$userOrders = Orders::where([
    'user_id' => $request->user()->id
])
    ->select(['id'])
    ->with('orders.items') // <<<< oops nested relations
    ->get();
$userOrders=Orders::其中([
'user_id'=>$request->user()->id
])
->选择(['id'])

->使用('orders.items')/您不想选择任何内容,只需使用

$userOrders = Orders::with('orders.items')->where('user_id', $request->user()->id)->get();
您要隐藏的内容将在每个模型上设置

例如,假设在用户的属性上,您希望隐藏在
列中创建的
。添加属性

protected $hidden = ['created_at', 'updated_at'];  // + any other fields you want to hide on the user model.

您不想选择任何内容,只需使用

$userOrders = Orders::with('orders.items')->where('user_id', $request->user()->id)->get();
您要隐藏的内容将在每个模型上设置

例如,假设在用户的属性上,您希望隐藏在
列中创建的
。添加属性

protected $hidden = ['created_at', 'updated_at'];  // + any other fields you want to hide on the user model.

是否可以设置单个隐藏的“规则”?让我解释一下,当为/v1/orders选择订单时,我希望返回没有创建属性的模型,但当/v1/orderInfo时,我希望返回所有模型属性。是否可以设置单个隐藏的“规则”?让我解释一下,当为/v1/orders选择订单时,我希望返回没有创建属性的模型,但当/v1/orderInfo时,我希望返回所有模型属性。。