Laravel Cloud is here! Zero-config managed infrastructure for Laravel apps. Deploy now.

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.

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.


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
Blastup logo

Blastup

Blastup provides social media enhancement services including buying Instagram likes, followers, and views, with features like instant delivery and a variety of packages to suit different needs.

Blastup
Honeybadger logo

Honeybadger

Simple developer-focused application monitoring for Laravel. Error tracking, log management, uptime monitoring, status pages, and more!

Honeybadger
SerpApi logo

SerpApi

Access real-time search engine results through a simple API—no more scraping headaches! Use it for AI applications, SEO tools, product research, travel information, and more

SerpApi
Lucky Media logo

Lucky Media

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

Lucky Media
CodeKudu logo

CodeKudu

Stand-ups, Retrospectives, and 360° Feedback for the entire team. 50% off with code LARAVELNEWS.

CodeKudu
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit