我有这个问题:
$inError = DB::table('errors')
->select('fk_fact')
->distinct()
->get();
我希望它返回一个整数数组,而不是返回一个对象数组,我不想循环遍历所有结果并逐个推送值... 有没有办法用Laravel做到这一点?
答案 0 :(得分:5)
当然,您可以使用内置的lists()
方法:
$inError = DB::table('errors')
->select('fk_fact')
->distinct()
->lists('fk_fact');
您可能需要在列表调用后使用->all()
。
以下是我碰巧遇到的数据库中的一个修补程序示例:
>>> DB::table('teams')->select('name')->distinct()->lists('name');
=> [
"AFC Bournemouth",
"Arsenal",
"Aston Villa",
"Chelsea",
"Crystal Palace",
"Everton",
"Leicester City",
"Liverpool",
"Manchester City",
"Manchester United",
"Newcastle United",
"Norwich City",
"Southampton",
"Stoke City",
"Sunderland",
"Swansea City",
"Tottenham Hotspur",
"Watford",
"West Bromwich Albion",
"West Ham United",
]
答案 1 :(得分:0)
lists 已在较新版本的查询构建器中删除。您现在可以使用pluck。
$inError = DB::table('errors')
->distinct()
->pluck('fk_fact');