Laravel извлекает данные об углероде в прошлом месяце

Я пытаюсь получить первый результат из своих данных, где дата равна диапазону дат последних месяцев.

Это может быть примером содержимого моей базы данных -

id  date_recorded
1   2016-07-22 15:21:33
2   2016-08-13 12:22:22
3   2016-07-06 12:22:22
4   2016-09-12 12:45:22

Это мой запрос для получения второго результата (самого последнего за последний месяц).

$seoScoreLastMonth = Manual::where('account_id', Auth::user()->account)
->where('date_recorded', '>=', Carbon::now()->subMonth())
->orderBy('date_recorded', 'desc')
->pluck('seo_score')
->first();

Возвращаемый результат нулевой, это потому что первый результат в базе по id не совпадает с датой?


person archvist    schedule 13.09.2016    source источник
comment
Просто чтобы убедиться, соответствует ли ваш первый оператор where какой-либо информации?   -  person Chris Forrence    schedule 13.09.2016
comment
Да, я пробовал несколько комбинаций, и все работает, и я могу вывести результаты в правильном порядке. Только когда я говорю, где дата-›subMonth, который просто выбрасывает его и возвращает первое значение   -  person archvist    schedule 13.09.2016
comment
Хорошо, а какую версию Laravel вы используете? Я спрашиваю, потому что я ввожу App\Models\User::where('created_at', '>=', Carbon\Carbon::now()->subMonth())->orderBy('created_at')->pluck('first_name')->first(); в локальное приложение Laravel 5.3, и оно возвращает данные.   -  person Chris Forrence    schedule 13.09.2016
comment
Попробуйте использовать Carbon\Carbon::now()->subMonth()->toDateTimeString() вместо Carbon\Carbon::now()->subMonth()   -  person Julian Rodriguez    schedule 13.09.2016
comment
Еще вопрос: существует ли поле seo_score в таблице manuals? Когда я попытался извлечь несуществующее поле, оно вернуло значение null.   -  person Chris Forrence    schedule 13.09.2016
comment
Привет, да, в поле есть seo_score, я могу выполнить следующий запрос, используя оператор orderBy, но не оператор where - $seoScoreLastMonth = Manual::orderBy('date_recorded', '>=', Carbon::now()->subMonth())->get();   -  person archvist    schedule 14.09.2016


Ответы (1)


Мне нужен был этот месяц. Вот мой запрос. Я думаю, вы сможете изменить его, если вам нужно

$start = new Carbon('first day of this month');
$start = $start->startOfMonth()->format('Y-m-d H:i:s'); // startOfMonth for 00:00 time

Ваш запрос..->where('date_recorded','>',$start)..

С помощью Carbon - получить первый день месяца введите здесь описание ссылки

person Vit    schedule 29.08.2018