Получить массив целых чисел с помощью построителя запросов Laravel

У меня есть этот запрос:

$inError = DB::table('errors')            
        ->select('fk_fact')
        ->distinct()
        ->get();

И я хочу, чтобы он возвращал массив целых чисел, а не возвращал массив объектов, я не хочу перебирать все результаты и выдвигать значения одно за другим... Есть ли способ сделать это с помощью Laravel?

2 ответа

Конечно, вы можете использовать встроенный 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",
   ]

Списки были удалены в новых версиях построителя запросов. Теперь вы можете использовать pluck .

      $inError = DB::table('errors')            
->distinct()
->pluck('fk_fact');
Другие вопросы по тегам