Пагінація кількох моделей Eloquent за допомогою пакету Union Paginator

0
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 11 грудня, 2024
Вас цікавить, як інтегрувати дані з кількох моделей Eloquent в єдиний запит за допомогою SQL? У нашій статті ви дізнаєтеся, як використовувати пакет Laravel Union Paginator для досягнення узгодженої пагінації та налаштувань з різних джерел даних

Пакет Laravel Union Paginator, розроблений Austin White, об'єднує дані з кількох моделей Eloquent в один запит за допомогою SQL-об'єднань. За допомогою цього пакету ви можете отримати "послідовну пагінацію і налаштування для різних джерел даних".

Клас UnionPaginator налаштовується на основі моделей, які розширюють базовий клас Eloquent Model. Ви можете контролювати перетворення записів кожної моделі і викликати paginate() на екземплярі UnionPaginator після налаштування:

use AustinW\UnionPaginator\UnionPaginator;
 
// Визначаємо моделі
$paginator = UnionPaginator::for([User::class, Post::class]);
 
// Застосовуємо перетворення
$paginator->transform(User::class, fn($record) => [
    'id' => $record->id,
    'name' => $record->name,
])->transform(Post::class, fn($record) => [
    'title' => $record->title,
    'created_at' => $record->created_at,
]);
 
// Пагінація результатів
$paginatedResults = $paginator->paginate(10);
 
// Проходимо через пагіновані елементи
foreach ($paginatedResults->items() as $item) {
    // Обробляємо пагінований елемент
}

Пакет Union Paginator сумісний з Laravel v10 та Laravel v11. Щоб почати працювати з цим пакетом, відвідайте його на GitHub за посиланням austinw/laravel-union-paginator

Популярні

Logomark Logotype

Створення CLI-додатка за допомогою Laravel та Docker

Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Як задокументувати кілька API в Laravel за допомогою Scramble

Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше