Laravel Query Builder - где дата теперь использует углерод

Как получить только дату в столбце базы данных, у меня возникают трудности с использованием Carbon на контроллере:

$data['nowUser'] = User::where('date', Carbon::today()->toDateString())->get();

Столбец даты выглядит в базе данных следующим образом:

введите описание изображения здесь


person Reint    schedule 13.12.2015    source источник


Ответы (1)


Это столбец DATETIME, поэтому нет необходимости в дополнительном форматировании экземпляра Carbon. Однако вам нужно использовать whereDate, если вы хотите получить всех пользователей, для которых столбец date содержит сегодняшнюю дату:

$data['nowUser'] = User::whereDate('date', '=', Carbon::today())->get();

Потому что, когда вы передаете Carbon::today() методу Query Builder, __toString будет автоматически вызываться и возвращать строку DATETIME в формате из Carbon::DEFAULT_TO_STRING_FORMAT, который точно соответствует формату MySQL Y-m-d H:i:s.

person Bogdan    schedule 13.12.2015