Laravel Carbon вернет мне 0 результатов - PullRequest
0 голосов
/ 22 мая 2018

Мне нужно собрать данные этого месяца для пользователя в базе данных, поэтому я пишу:

 dd($user->products->where('paid',1)->where('created_at','>=', Carbon::now()->startOfMonth()->toDateString())->all());

, и я получил 0 результатов ...

Когда я пытаюсь Carbon::now()->subMonth(), это хорошо работаетно верните мне последние 30 дней ...

Как я могу решить это?Как получить данные только за этот месяц?

1 Ответ

0 голосов
/ 22 мая 2018

->toDateString() заставляет запрос искать значение string, а не date.Есть два способа решить эту проблему:

(...)->where('created_at', '>=', Carbon::now()->startOfMonth())
// OR
(...)->whereDate('created_at', '>=', Carbon::now()->startOfMonth()->toDateString())

Если вы просто используете переменную Carbon, Laravel знает, что нужно проверять логику date.В качестве альтернативы, если вы используете string, вы можете переопределить логику where, чтобы рассматривать ее как date, используя ->whereDate()

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