Laravel Преобразование необработанных запросов, содержащих 'как' ключевое слово в Eloquent - PullRequest
1 голос
/ 14 марта 2020

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

SELECT business_id, count(*) as how_many from dbname.gateway_transactions WHERE DATE(created_at) = '2020-02-02' group by business_id order by how_many desc limit 5

И вот результат:

enter image description here

Я хочу получить Результат этого запроса (содержимое изображения) в виде массива. Как я могу это сделать?

Я использовал это:

$a = GatewayTransaction::selectRaw("SELECT business_id, count(*) as how_many from dbname.gateway_transactions WHERE DATE(created_at) = '2020-02-02' group by business_id order by how_many desc limit 5");

Но не смог получить то, что мне нужно. Мне нужен такой массив, как на картинке выше:

[
51  => 725,
176 => 405,
229 => 264,
98  => 109,
136 => 92
]

1 Ответ

2 голосов
/ 14 марта 2020

Вам нужно использовать Eloquent Builder так:

$a = GatewayTransaction::selectRaw('business_id, count(*) as how_many')
                       ->whereDate('created_at', '2020-02-02')
                       ->groupBy('business_id')
                       ->orderBy('how_many', 'desc')
                       ->take(5)
                       ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...