Easy Model - A Laravel package for enjoyably managing database queries

by•
This release brings cleaner exception handling, smarter relationship ordering, advanced keyword search helpers, array-driven where conditions, better JOIN support, safer reusable pipelines, and direct single-model retrieval from the searchable pipeline. Also packed with important fixes for relationship ordering, soft delete handling, query consistency, silent row-loss issues, and pipeline stability. 🥵

Add a comment

Replies

Best

🚀 Easy Model v1.2.0

This release focused on making querying more powerful, relationship ordering more reliable, and error handling more consistent.

🔎 Better Searching & Filtering

Add grouped keyword searches and common array-driven conditions:

User::addKeywordSearch(['name', 'email'])
    ->addWhereIn('status', ['active', 'pending'])
    ->addWhereNotNull('email_verified_at')
    ->addWhereBetween('age', [18, 60])
    ->get();

📊 Relationship Aggregate Ordering

Order models using relationship counts and aggregates:

User::addOrderByCount('posts')
    ->addOrderByAggregate('posts', 'likes', 'sum')
    ->get();

🔗 Advanced Relationship Ordering

`addOrderBy()` now provides first-class join support for complex relationships including `MorphOne`, `MorphMany`, `MorphToMany`, `HasOneThrough`, and `HasManyThrough`.

⚠️ Better Exception Handling

All package exceptions now implement a common `EasyModelException` interface, use named constructors, and are based on standard SPL exception types for more consistent error handling.

🔄 Safer Query Reuse

New `flushSearchable()` and `flushUpdatable()` methods make it safer to reuse trait state, while searchable pipelines can now return a single model instance directly.

🛠️ Important Fixes

The release also fixes relationship foreign-key resolution, `LEFT JOIN` row loss, Eloquent builder downgrading, invalid array structures, single-model updates, and incorrect `includeSoftDeleted()` behavior.

Easy Model v1.2.0 lays the groundwork for a more powerful and reliable Eloquent experience.