Пошук Laravel Cross-Eloquent — це пакет для пошуку в кількох моделях Eloquent. Цей пакет підтримує сортування, розбивку на сторінки, запити з діапазоном, зв’язки швидкого завантаження та пошук в одному чи кількох стовпцях:
// Returns \Illuminate\Database\Eloquent\Collection
Search::new()
->add(Post::class, 'title')
->add(Video::class, 'title')
->get('howto');
// Add multiple models at once
Search::addMany([
[Post::class, 'title'],
[Video::class, 'title'],
])->get('howto');
Часто вам потрібно розбивати результати на сторінки, і це пакет робить це легко:
Search::add(Post::class, 'title')
->add(Video::class, 'title')
->paginate()
// or
->paginate(perPage: 15, pageName: 'page', page: = 1)
->get('build');
readme містить масу інформації про використання цього пакета, яку я рекомендую переглянути:
- Search through one or more Eloquent models
- Support for cross-model pagination
- Search through single or multiple columns
- Order by (cross-model) columns or by relevance
- Use constraints and scoped queries
- Eager load relationships for each model
- In-database sorting of the combined result
- Zero third-party dependencies
Ви можете дізнатися більше про цей пакет, отримати повні інструкції зі встановлення та переглянути вихідний код на GitHub. Автор цього пакету також написав публікацію в блозі , яка містить більш детальну інформацію про використання цього пакета.