我可能会遗漏一些极其琐碎的东西,但是在获取一个集合时可以从模型中检索特定的列/字段,而不是返回整个项目的字段吗?
这是我的查询:
$items = Items::where('visible', true)->take(10)->get();
这显然返回了每个项目的全部信息,包括唯一ID和其他我不想提取的字段...我如何优化此查询以仅从模型中选择特定字段?
答案 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();
答案 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();