Пакет «Вирази запитів» для Laravel замінює виразами будь-які необроблені виклики запитів. Замість того, щоб писати наступний приклад з readme:Ви можете написати щось на зразок наступного, використовуючи цей пакет:
// Instead of:
User::query()
->when(isPostgreSQL(), fn ($query) => $query->selectRaw('coalesce("user", "admin") AS "value"'))
->when(isMySQL(), fn ($query) => $query->selectRaw('coalesce(`user`, `admin`) AS `value`'))
Крім коду терсера,
User::select(
new Alias(new Coalesce(['user', 'admin']), 'count')
);
// More examples:
// UPDATE user_quotas SET credits = credits - 15 WHERE id = 1985
$quota->update([
'credits' => new Subtract('credits', new Number(15)),
]);
// SELECT id, name, (price - discount) * 0.2 AS vat FROM products
Product::select([
'id',
'name',
new Alias(new Multiply(new Subtract('price', 'discount'), Number(0.2)), 'vat')
])->get();
чому б ви хотіли використовувати щось на зразок цього пакета? Readme описує, як цей пакет вписується у ваші програми Laravel: реалізація бази даних Laravel забезпечує хороший спосіб роботи з кількома базами даних,
абстрагуючись від їх внутрішньої роботи...
Однак, коли ми хочемо використовувати більше функціональних можливостей бази даних, ніж надає Laravel, ми повинні повернутися до необроблених виразів SQL і написати код, специфічний для бази даних. Пакет виразів запитів базується на нових функціях, введених у Laravel 10 для вирішення цієї проблеми.
На момент написання статті цей пакет підтримує різні вирази, такі як:Значення псевдонімів Арифметичні оператори Порозрядні оператори Порівняння та логічні оператори
- Агрегатні функції
- Умовні
- Якщо ви хочете дізнатися більше про цей пакет, перегляньте laravel-query-вирази на GitHub.
Ви можете встановити цей пакет у своєму проекті Laravel 10 через composer:
composer require tpetry/laravel-query-expressions