Количество запросов и фильтр Laravel

#php #laravel

Вопрос:

У меня проблема с этим запросом: я хочу подсчитать, сколько журналов было за последние 24 часа от конкретного пользователя и с определенным кодом состояния (пример 400)».

На самом деле, с помощью этого запроса я нашел все журналы от конкретной компании.

 $webhookLog = WebhookLog::where('company_id', $company-gt;id) -gt;orderBy('updated_at', 'desc')-gt;get();  

Комментарии:

1. в чем ваша проблема с запросом? Не могли бы вы дать нам больше информации?

2. попробуйте $webhookLog = WebhookLog::где(‘идентификатор компании’, $компания-gt;идентификатор) -gt;gt;где(‘created_at’, ‘gt;gt;gt;’, Углерод::сейчас()-gt;gt;gt;gt;субБоты(1)) -gt;gt;gt;gt;gt;где(‘код состояния’,400) -gt;gt;gt;gt;gt;gt;Порядок(‘created_at’, ‘desc’)-gt;gt;gt;gt;gt;gt;gt;получить();

Ответ №1:

В контроллере

в функции

 $date = date('Y-m-d');  $webhookLog = WebhookLog::where('company_id', $company-gt;id)  -gt;whereBetween('updated_at, [$date . " 00:00:00", $date . " 23:59:59"])  -gt;orderBy('updated_at', 'desc')-gt;get();  

это вернет сегодняшние журналы

замените get() на count (), чтобы получить счетчик.

Ответ №2:

Вы можете использовать этот метод начиная с даты в течение 24 часов

 $fromDate = Carbon::now()-gt;subMinutes(1440); $toDate = Carbon::now();   

Ответ №3:

Можете ли вы попробовать это

 $webhookLog = WebhookLog::query()  -gt;where([  ['company_id', '=',$company-gt;id],  ['user_id', '=', Auth::id()],  ['status_code','=',400]  ])  -gt;whereBetween('created_at', [  Carbon::now()-gt;subHours(24),  Carbon::now()  ])  -gt;orderBy('updated_at', 'desc')-gt;get();