Как добавить еще один столбец в выборку с помощью Laravel Eloquent - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь использовать Laravel Eloquent для запроса.Я хотел бы сгруппировать результаты по столбцу level, посчитать результаты в псевдониме total и, наконец, принести мне id каждого результата.Что я делаю не так?

$fodas = Foda::groupBy('level')
             ->select('level', DB::raw('count (*) as total'))
             ->get();

В результате получается коллекция, которая приносит мне только поля уровня и общего количества.

1 Ответ

0 голосов
/ 09 июля 2019

Вы увидите этот рисунок со многими фасадами ларавеллы. Если вы обрабатываете «один из чего-то», в данном случае столбец, вы передаете строку, а если вы обрабатываете много чего-то, вы передаете массив.

Именно поэтому * и level оба действительны. Потому что * распознается как столбец и расширяется внутри mysql для соответствия каждому столбцу.

И именно поэтому он не работает, когда вы пытаетесь запросить 'level, column2, column3', потому что эта строка не является допустимым именем столбца, поэтому вам нужно передать массив со всеми столбцами, которые вы хотите использовать .

   $fodas = Foda::groupBy('level')
      ->select(['level','other','column'], DB::raw('count (*) as total'))
      ->get();

Как я уже говорил, это относится ко многим фасадам ларавеллы:

Facade::function('one_thing');
//or
Facade::function(['thing1','thing2','thing3']);
//or even this, for some cases
Facade::function('thing1','thing2','thing3');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...