Пакет 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
Зазирніть у світ Laravel, де потужний CLI-фреймворк відкриває нові можливості для розробки командного інтерфейсу. Дізнайтеся, як створити просту утиліту для перевірки акцій, яка працює з Docker, та які переваги це може принести у вашому проєкті!
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!
Ви знали, що в одному додатку Laravel можна реалізувати кілька API? У нашій статті ви дізнаєтеся, як за допомогою Scramble легко документувати різні версії API та налаштувати доступ до документації, щоб зробити її публічною або приватною. Читайте далі, щоб дізнатися більше