ulobby/neoeloquent
NeoEloquent brings Laravel's Eloquent ORM to Neo4j graph databases. Define graph-backed models, traverse relationships, and run Cypher queries using familiar Eloquent conventions, making it easier to integrate graph data into Laravel applications.
9.8.x by Composer rather than breaking — so this is a scheduling decision, not an outage. It puts NeoEloquent on the critical path of any Laravel upgrade: the framework upgrade and the graph layer upgrade ship together.hasOne()/belongsTo() fix without an explicit relationship type removes a friction point for teams modeling on Neo4j 5, which matters if the database platform has already been standardized there.SoftDeletes, onlyTrashed(), and counts working means "delete" in graph entities can follow the same product rules as the relational side — auditability, undo, retention windows — instead of being a bespoke flag the graph layer ignores.Consider it when all of the following hold:
Look elsewhere when:
To executives: We evaluated NeoEloquent, the Laravel integration for the Neo4j graph database. The new release (v9.9.0) aligns it with our current framework generation — Laravel 12/13, PHP 8.2+ — and fixes real correctness bugs, notably soft deletes and default relationship handling. It is a narrow, low-cost enabler: it lets us build relationship-heavy features (recommendations, fraud detection, permissions, knowledge graphs) inside the stack we already run, instead of adding a second application platform. The trade-off is concentration risk — one primary maintainer — and the requirement that the graph layer upgrades in lockstep with Laravel. Recommendation: adopt only where a roadmap item genuinely needs multi-hop traversal, pin the version, and treat every Laravel upgrade as including a NeoEloquent compatibility check. Note that apps still on Laravel 10/11 are unaffected — they remain on the 9.8 line — so there is no forced migration, but also no future fixes on that line.
To engineering: v9.9.0 is a breaking release gated on Laravel 12/13 and PHP 8.2+; Composer will hold Laravel 10/11 apps on 9.8.x automatically, so the upgrade is a deliberate version bump, not an accident. It fixes soft deletes (SoftDeletes, onlyTrashed(), counts) on Laravel 13 and hasOne()/belongsTo() without an explicit relationship type on Neo4j 5 — both were sharp edges worth knowing about. CI has moved from Travis to GitHub Actions across PHP 8.2–8.5 and Laravel 12–13 on Neo4j 5.26, and the test suite is now deterministic. Before adopting: confirm your Neo4j server version, decide explicitly how SQL↔Neo4j consistency will be handled, and budget for reading changelogs on every bump given the single-maintainer bus factor. Keep the package version pinned and the graph layer covered by our own integration tests rather than relying solely on upstream's suite.
How can I help you explore Laravel packages today?