kitloong / eloquent-power-joins-with-compoships
The Laravel magic applied to joins, with compoships support
Fund package maintenance!
www.buymeacoffee.com/kitloong
Installs: 12 319
Dependents: 0
Suggesters: 0
Security: 0
Stars: 23
Watchers: 3
Forks: 2
Open Issues: 0
Requires
Requires (Dev)
- laravel/legacy-factories: ^1.1
- orchestra/testbench: ^4.0|^5.0|^6.0|^7.0|^8.0
- squizlabs/php_codesniffer: ^3.6
README
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.
Installation
You can install the package via composer:
composer require kitloong/eloquent-power-joins-with-compoships
Usage
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');
License
This package is open-sourced software licensed under the MIT license