首页 > 解决方案 > 如何在laravel中查询后仅显示集合的某些字段

问题描述

我有一个如下查询:

  $orders = Order::where('somefield', 12)->paginate(5)->groupBy('group_id');
        foreach ($orders as $order) {
          $order->put('shop', $order->groupBy('shop_id'));
           }

现在我想做的是从$order商店中删除所有字段,这就是我这样做的方式:

 $orders = Order::where('somefield', 12)->paginate(5)->groupBy('group_id');
        foreach ($orders as $order) {
          $order->put('shop', $order->groupBy('shop_id'));
            collect($order)->only('shop');
           }

因此,当我在$order这里添加时,它仅显示商店索引,但是当我返回时,$orders 它会返回所有数据。知道我做错了什么吗?

标签: phpmysqllaravel

解决方案


在您的查询中使用select()Like :->select('your wanted field')

或者您也可以这样做:

$subset = $users->map(function ($user) {
return collect($user->toArray())
    ->only(['id', 'name', 'email'])
    ->all();
});

推荐阅读