Laravel仅从集合的每个项目中检索特定字段

时间:2018-09-30 06:13:29

标签: laravel orm eloquent

我可能会遗漏一些极其琐碎的东西,但是在获取一个集合时可以从模型中检索特定的列/字段,而不是返回整个项目的字段吗?

这是我的查询:

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

这显然返回了每个项目的全部信息,包括唯一ID和其他我不想提取的字段...我如何优化此查询以仅从模型中选择特定字段?

3 个答案:

答案 0 :(得分:2)

雄辩的集合get()函数接收您需要提取的列数组。

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

答案 1 :(得分:1)

使用select()方法执行此操作:

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

来源:Latavel Database Query Builder

答案 2 :(得分:0)

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

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

OR

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