【问题标题】:Laravel retrieve only specific fields from each item of collectionLaravel 仅从每个集合项中检索特定字段
【发布时间】:2019-03-05 14:55:34
【问题描述】:

我可能遗漏了一些极其微不足道的东西,但是在抓取集合而不是返回整个项目的字段时,是否可以从模型中检索特定的列/字段?

这是我的查询:

$items = Items::where('visible', true)->take(10)->get();

这显然会完整返回每个项目,包括唯一 id 和其他我不想获取的字段...如何优化此查询以仅从模型中选择特定字段?

【问题讨论】:

    标签: laravel orm eloquent


    【解决方案1】:

    Laravel Query Builder get() 函数接收您需要获取的列数组。

    $items = Items::where('visible', true)->take(10)->get(['column_1', 'column_2']);

    【讨论】:

      【解决方案2】:

      使用select() 方法来做到这一点:

      $items = Items::select(['column_1', 'column_2']'])->where('visible', true)->take(10)->get();
      

      来源:Latavel Database Query Builder

      【讨论】:

        【解决方案3】:

        Laravel 查询构建器为编写此类查询提供了极大的灵活性。 您可以使用 select()、get()、all() 方法。

        Items::where('visible', true)->take(10)->get('col_1', 'col_2');
        

        Items::select('col_1', 'col_2')->where('visible', true)->take(10)->get();
        Items::select(['col_1', 'col_2'])->where('visible', true)->take(10)->get();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-10-14
          • 1970-01-01
          • 1970-01-01
          • 2021-04-08
          • 2020-10-02
          • 2016-11-19
          • 1970-01-01
          相关资源
          最近更新 更多