В этой статье блога мы углубимся в различные методы получения записей текущего месяца в Laravel, популярной PHP-инфраструктуре. Мы рассмотрим различные подходы на примерах кода, которые помогут вам понять и реализовать их в ваших проектах Laravel. Давайте начнем!
Метод 1: использование Eloquent Query Builder
$currentMonthRecords = YourModel::whereMonth('created_at', '=', date('m'))->get();
Этот метод использует метод whereMonth
, предоставленный построителем запросов Laravel. Он фильтрует записи по месяцу из столбца created_at
, сравнивая его с текущим месяцем, полученным с помощью функции date
.
Метод 2: использование необработанных SQL-запросов
$currentMonthRecords = DB::select("SELECT * FROM your_table WHERE MONTH(created_at) = MONTH(CURRENT_DATE())");
Этот метод предполагает написание необработанных SQL-запросов с использованием фасада DB
. Запрос выбирает все записи из таблицы your_table
, где месяц в столбце created_at
соответствует текущему месяцу.
Метод 3: применение библиотеки углеродных дат
use Carbon\Carbon;
$currentMonthRecords = YourModel::whereMonth('created_at', '=', Carbon::now()->month)->get();
Carbon — мощная библиотека даты и времени, входящая в состав Laravel. Используя метод Carbon::now()
, мы получаем текущую дату и время, а затем обращаемся к свойству month
для фильтрации записей по текущему месяцу.
Метод 4. Создание пользовательской области
use Illuminate\Database\Eloquent\Builder;
public function scopeCurrentMonth(Builder $query)
{
return $query->whereMonth('created_at', '=', date('m'));
}
$currentMonthRecords = YourModel::currentMonth()->get();
Создав в своей модели пользовательскую область, вы можете инкапсулировать логику получения записей текущего месяца. Метод scopeCurrentMonth
добавляет условие whereMonth
в построитель запросов, что позволяет вам вызывать его как цепной метод в вашей модели.