Laravel package to search through multiple Eloquent models. Supports sorting, pagination, scoped queries, eager load relationships and searching through single or multiple columns.
1.1k
Stars
79
Forks
12
Open issues
11
Contributors
AI Analysis
This Laravel package enables searching across multiple Eloquent models simultaneously, supporting pagination, sorting, full-text search, and relationship traversal. It is purpose-built for Laravel developers who need unified search functionality across disparate database tables, and is not suitable for projects outside the Laravel ecosystem or those needing real-time search engines.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Specialized Laravel search tool for querying multiple Eloquent models with cross-model sorting and pagination
Laravel Cross Eloquent Search is a PHP package enabling developers to search across multiple Laravel Eloquent models simultaneously while supporting pagination, sorting, eager loading, and database-specific full-text search. It targets Laravel developers building multi-model search features without a dedicated search backend. The package fills a specific gap: cross-model queries with relevance ranking and combined result sets, distinct from single-model query builders or external search engines.
Created June 2020 by Protone Media. The package emerged as a focused solution for a recurring Laravel use case—applications needing to search Posts, Videos, Users, etc. simultaneously while maintaining database-native operations. Development has been steady rather than exponential, reflecting its niche positioning.
1,131 stars accumulated over ~6 years suggests moderate, sustained adoption rather than viral growth. Last commit February 2026 (4 months ago, relative to analysis date July 2026) indicates ongoing maintenance. Zero stars gained in last 7 days is typical for mature, stable packages serving a specific use case rather than trending tools. Growth appears driven by word-of-mouth within Laravel ecosystem rather than market expansion.
1,131 stars and 79 forks provide weak-to-moderate adoption signals, but do not confirm production use. Total Packagist downloads badge exists but count not disclosed in metadata. Live stream demonstration and blog post from authors suggest internal dogfooding and intentional promotion. Adoption not verified at enterprise scale; likely used by mid-market Laravel shops and indie developers building multi-model search features.
Appears to use a fluent builder pattern (add, search, filter methods) layered over Laravel's Eloquent ORM. Likely constructs union queries or multiple queries merged in-memory, given the README's emphasis on cross-model sorting and pagination. Database driver detection for full-text search features (MySQL native, PostgreSQL tsquery, SQLite LIKE) suggests conditional logic for database-specific implementations.
README includes CI badge (run-tests workflow) indicating automated testing present, but specific coverage percentage not documented in README. Test existence is verified but depth unknown.
Last push February 28, 2026 (122 days before analysis date) shows recent activity. Package requires PHP 8.2+ and Laravel 11.0+, suggesting tracking modern Laravel versions. Composer download badge visible but absolute numbers not provided in metadata. CI passing and recent version management on Packagist are positive signals; however, the zero stars in last 7 days and 4-month gap since last commit suggest maintenance is reactive (responding to issues/PRs) rather than actively adding features.
ADOPT IF: you are building a Laravel application needing to search 2–5 models simultaneously, prefer in-database operations over external search services, require cross-model pagination and relevance sorting, and accept the constraint of searching specific columns rather than full-text indexes. AVOID IF: you need sub-millisecond response times on millions of rows, require complex faceting or analytics, expect frequent feature additions, or have a policy against single-maintainer packages without large corporate backing. MONITOR IF: your application grows to require more sophisticated search (facets, typo tolerance, complex filters); you may outgrow this tool's scope and need Meilisearch or Elasticsearch.
Independent dimensions
Mainstream potential
3/10
Technical importance
6/10
Adoption evidence
4/10
- Single-maintainer project with modest team (Protone Media); bus factor risk if primary author becomes unavailable—no evidence of succession plan or large contributor pool.
- Performance may degrade with large datasets (100k+ combined rows) or many models (>5); README does not document benchmarks or scaling limits.
- Database-specific features (full-text search, SOUNDS LIKE) behave differently across MySQL, PostgreSQL, SQLite—developers must understand each variant's quirks.
- Slow adoption growth (1,131 stars over 6 years vs. competing tools at 1k–6k) suggests limited market pull; may indicate the problem it solves is either niche or addressed by other methods (external search, raw SQL).
- Dependency on Laravel's Eloquent evolution; breaking changes in future Laravel major versions could require updates; upgrade from v2→v3 already required API changes (get→search, addWhen removal).
Likely to remain a stable, niche tool within the Laravel ecosystem, maintained reactively rather than aggressively developed. Adoption will probably plateau around 1.5k–2k stars unless a major pain point in the Laravel community drives renewed interest. Most growth will come from ecosystem consolidation (being recommended in Laravel blogs/packages) rather than expanding to non-Laravel frameworks.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- PHP
- License
- MIT
- Last updated
- 4mo ago
- Created
- 73mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Want to achieve with customer orders count and select specific columns for customers table
Question: Any insight as to why this package might cause CORS error
Question: Is there a way to force unique records?
Unable to sorting collection
Search on pivot table
Top contributors
Recent releases
Similar repos
spatie/laravel-searchable
Laravel Searchable is a Laravel package that enables structured search across...
staudenmeir/eloquent-has-many-deep
This Laravel package extends Eloquent's HasManyThrough relationship to support...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
1.1k | — | PHP | 8/10 | 4mo ago |
|
|
1.4k | — | PHP | 8/10 | 5mo ago |
|
|
1.7k | — | PHP | 8/10 | 3d ago |
|
|
2.9k | — | PHP | 9/10 | 4mo ago |
|
|
1.5k | — | PHP | 8/10 | 2w ago |
|
|
1.8k | — | PHP | 8/10 | 4mo ago |
Comparable goal (search multiple models) but Searchable is more general-purpose for polymorphic relationships and tag-based search; this package is more specialized for column-based cross-model queries with advanced sorting/pagination.
Query Builder handles single-model filtering and sorting; does not natively merge results across models or perform cross-model pagination. Different scope: builder per model vs. cross-model aggregation.
Focused on relationship query improvements; not designed for multi-model search or relevance ranking across heterogeneous result sets.
This package keeps search in-database and eliminates external dependencies; trade-off is complexity grows with dataset size and feature limitations vs. specialized search systems.
This package abstracts UNION logic and cross-model sorting behind a fluent API; developers could write UNION queries manually but would lose pagination/eager-load convenience and database portability.
