protonemedia

protonemedia/laravel-cross-eloquent-search

PHP MIT Web Dev

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
slow
GitHub

1.1k

Stars

79

Forks

12

Open issues

11

Contributors

3.7.0 23 Feb 2026

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.

Web Dev Library Discovery value: 4/10
Documentation 8/10
Activity 7/10
Community 8/10
Code quality 7/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

laravel-package multi-model search full-text search eloquent orm database abstraction
Actively maintained Well documented MIT licensed Niche/specialized use case Production ready
Deep Analysis · Based on README and public signals
1w ago

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.

Origin

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.

Growth

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.

In production

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.

Code analysis
Architecture

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.

Tests

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.

Maintenance

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.

Honest verdict

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

Risks
  • 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).
Prediction

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.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

PHP
100%

Information

Language
PHP
License
MIT
Last updated
4mo ago
Created
73mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

spatie

spatie/laravel-searchable

Laravel Searchable is a Laravel package that enables structured search across...

1.4k PHP Web Dev
laravel

laravel/scout

Laravel Scout is a driver-based full-text search abstraction layer for...

1.7k PHP Web Dev
staudenmeir

staudenmeir/eloquent-has-many-deep

This Laravel package extends Eloquent's HasManyThrough relationship to support...

2.9k PHP Web Dev
spatie

spatie/eloquent-sortable

A PHP trait that adds sortable behavior to Laravel Eloquent models,...

1.5k PHP Web Dev
Tucker-Eric

Tucker-Eric/EloquentFilter

EloquentFilter streamlines query filtering for Laravel Eloquent models by...

1.8k PHP Web Dev
vs. alternatives
spatie/laravel-searchable

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.

spatie/laravel-query-builder

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.

topclaudy/compoships

Focused on relationship query improvements; not designed for multi-model search or relevance ranking across heterogeneous result sets.

External search engines (Meilisearch, Elasticsearch, Algolia)

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.

Raw SQL UNION queries

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.