Пагінація кількох моделей 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

Популярні

Інше, що варто прочитати

13 Оновлено 01 червня, 2026

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

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

19 Оновлено 01 червня, 2026

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

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

83 Оновлено 01 червня, 2026

Все, що потрібно знати про Laravel 13

Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?