Pakiet wyrażeń zapytań dla Laravel zastępuje wszelkie nieprzetworzone wywołania zapytań wyrażeniami. Zamiast pisać następujący przykład z pliku readme:Możesz napisać coś podobnego używając tego pakietu:
// 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();
Poza bardziej zwięzłym kodem, dlaczego miałbyś chcieć użyć czegoś takiego jak ten pakiet? Plik readme opisuje, jak ten pakiet pasuje do aplikacji Laravel:
Implementacja bazy danych Laravel zapewnia dobry sposób pracy z wieloma bazami danych, jednocześnie abstrahując od ich wewnętrznego działania...
Jeśli jednak chcemy korzystać z większej liczby funkcji bazy danych niż zapewnia Laravel, musimy wrócić do surowych wyrażeń SQL i napisać kod specyficzny dla bazy danych. Pakiet wyrażeń zapytań opiera się na nowych funkcjach wprowadzonych w Laravel 10 w celu rozwiązania tego problemu.
W chwili pisania tego tekstu pakiet ten obsługuje różne wyrażenia, takie jak:
- Wartości Aliasy Operatory arytmetyczne Operatory
- bitowe Porównanie i operatory logiczne Funkcje agregujące Warunkowe
- Jeśli chcesz dowiedzieć się więcej o tym pakiecie, sprawdź laravel-query-expressions w witrynie GitHub.If you'd like to learn more about this package, check out laravel-query-expressions
- on GitHub.
Możesz zainstalować ten pakiet w swoim projekcie Laravel 10 poprzez kompozytora:
composer require tpetry/laravel-query-expressions