Запрос за последний год - Laravel 5.8 - PullRequest
1 голос
/ 26 сентября 2019

Я пытаюсь опросить всех своих посетителей за последний год.

Я пробовал

$raw = Visitor
           ::whereDate('created_at','>', Carbon::now()->year-1)
           ->get()
           ->pluck('created_at');

Примечание:

Углерод :: сейчас () -> год-1 // -------------> 2018

Я продолжаю получать все ответы в моем БД.

Что я сделал не так?

Ответы [ 4 ]

2 голосов
/ 26 сентября 2019

Вы можете просто использовать whereYear для этого.

$data = User::query()
    ->whereYear('created_at', now()->year -1)
    ->get()
    ->pluck('created_at');

гдеYear - метод может использоваться для сравнения значения столбца с конкретным годом.

см. Больше

2 голосов
/ 26 сентября 2019

Попробуйте так:

$raw = Visitor
          ::whereDate('created_at','>', now()->subYear())
          ->select('created_at')
          ->get();

Обратите внимание, что здесь я заменил деталь ->get()->pluck('created_at') на select('created_at'), потому что вам нужны только значения этого столбца.Ваш подход получит все результаты в памяти, а затем соберет нужные значения, альтернатива просто принесет вам нужные элементы.

2 голосов
/ 26 сентября 2019
$raw = Visitor::whereDate('created_at','>', Carbon::now()->subYear())->get()->pluck('created_at');

Когда вы делаете Carbon::now()->year - 1, возвращается 2018.Итак, сравнение сделано так: 2019-09-15 18:18:00 > 2018

1 голос
/ 26 сентября 2019

попробуйте этот код:

$raw = Visitor::whereDate('created_at','>', Carbon::now()->addYears(-1))->get()->pluck('created_at');
...