Laravel конвертировать запрос MySQL в запрос модели - PullRequest
0 голосов
/ 23 мая 2018

У меня есть модель безотказной работыКак я могу сделать этот запрос с запросом модели?

SELECT server_id, COUNT(*) status FROM uptime WHERE online = 0 GROUP BY server_id

Я пытаюсь:

Uptime::where('online', 0)->get(); 

Но это не правильно.Мне нужно с COUNT(*) и сгруппировать по select.

Ответы [ 3 ]

0 голосов
/ 23 мая 2018
Uptime::select('server_id', DB::raw('COUNT(*) as status'))
        ->where('online',0)
        ->groupBy('server_id')
        ->get();
0 голосов
/ 23 мая 2018

в соответствии с документами Laravel Необработанные выражения

этот код подходит для COUNT(*) и GROUP BY по вашим запросам

DB::table('uptime')->select(DB::raw('COUNT(*) as status'))
    ->where('online',0)
    ->groupBy('server_id')
    ->get();

Rawоператоры будут вставляться в запрос в виде строк, поэтому вам следует быть крайне осторожным, чтобы не создавать уязвимости SQL-инъекций.

0 голосов
/ 23 мая 2018
Uptime::whereOnline(0)
    ->groupBy('server_id')
    ->select('server_id', DB::raw('count(*) as status'))
    ->get();

whereOnline - это сокращение от where('online', 0)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...