• Время чтения ~1 мин
  • 10.09.2022

Laravel Cross-Eloquent Search — это пакет для поиска по нескольким моделям 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');

Часто вам нужно разбить результаты на страницы, и это package делает это очень просто:

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. Автор этого пакета также написал сообщение в блоге , в котором содержится более подробная информация об использовании этого пакета.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Об авторе CrazyBoy49z
WORK EXPERIENCE
Контакты
Ukraine, Lutsk
+380979856297