Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Eloquent Power Joins

kirschbaum-development/eloquent-power-joins image

Eloquent Power Joins stats

Downloads
1.7M
Stars
1,190
Open Issues
9
Forks
76

View on GitHub →

The Laravel magic applied to joins.

Eloquent Power Joins

Enhance your Laravel application with "Eloquent Power Joins", a powerful package designed to facilitate advanced join queries using Eloquent ORM in a more intuitive "Laravel way". This package simplifies the management of complex SQL joins, making your database interactions both cleaner and more efficient.

Features

  • Join Relationships Easily: Utilize existing Eloquent relationships to perform join queries without manually specifying the foreign keys or table names.
  • Scope and Condition Support: Apply local scopes and custom conditions directly within your join operations.
  • Nested and Polymorphic Joins: Supports complex nested joins and automatically handles polymorphic relationships.
  • Alias Handling: Use aliases effortlessly in your joins to avoid column name conflicts.
  • Enhanced Sorting: Sort query results based on related model columns and aggregates directly.
  • Query Relationship Existence: Use join operations instead of subqueries to check for the existence of relationships, enhancing performance.
  • Soft Deletes Awareness: Automatically accounts for soft deleted records in joins unless specified otherwise.
  • Global Scopes Compatibility: Integrate global scopes within your joins with ease.

Installation

Install via composer for Laravel versions 8 and above:

composer require kirschbaum-development/eloquent-power-joins

For Laravel versions below 8, use:

composer require kirschbaum-development/eloquent-power-joins:2.*

Usage

To use the power joins, include the PowerJoins trait in your Eloquent models:

use Kirschbaum\PowerJoins\PowerJoins;
 
class User extends Model
{
use PowerJoins;
}

Basic Join

User::joinRelationship('posts');

Nested and Polymorphic Joins

User::joinRelationship('posts.comments');
Post::joinRelationship('images'); // For polymorphic relationships

Applying Conditions

User::joinRelationship('posts', function ($join) {
$join->where('posts.approved', true);
});

Using Aliases

Post::joinRelationshipUsingAlias('category.parent', 'category_alias');

Checking Relationship Existence

User::powerJoinHas('posts.comments');

Ordering by Related Columns

User::orderByPowerJoins('profile.city');

Contributing

Contributions are welcome! Please refer to the contributing guidelines.

Security

For any security issues, contact luis@kirschbaumdevelopment.com or nathan@kirschbaumdevelopment.com.

License

This package is open-sourced software licensed under the MIT license.

kirschbaum-development photo

We are a team of carefully curated Laravel experts with a history of delivering practical and efficient solutions to complex problems.


Kirschbaum Development Eloquent Power Joins Related Articles

Laravel IDEA v10 is Here image

Laravel IDEA v10 is Here

Read article
Laravel Eloquent Power Joins Package image

Laravel Eloquent Power Joins Package

Read article
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
Get expert guidance in a few days with a Laravel code review logo

Get expert guidance in a few days with a Laravel code review

Expert code review! Get clear, practical feedback from two Laravel devs with 10+ years of experience helping teams build better apps.

Get expert guidance in a few days with a Laravel code review