#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();