This package is an Eloquent Power Joins extension to support Compoships.
You can now use joins in Laravel way, with composite key support.
This package support composite keys for relation:
- hasOne
- HasMany
- belongsTo
You could read the detail explanation at here.
You can install the package via composer:
composer require kitloong/eloquent-power-joins-with-compoships
To implement join with composite key
select users.* from users inner join posts on users.team_id = posts.team_id and users.category_id = posts.category_id;First, you need to define the model relationship the way Compoships did.
use Awobaz\Compoships\Compoships;
use Kirschbaum\PowerJoins\PowerJoins;
class User extends Model
{
    use PowerJoins;
    use Compoships;
    
    public function posts()
    {
        return $this->hasMany(
            Post::class, 
            ['team_id', 'category_id'], 
            ['team_id', 'category_id']
        );
    }
}Then you can get the same result by simply write
User::joinRelationship('posts');This package is open-sourced software licensed under the MIT license