Download the PHP package mr-punyapal/laravel-extended-relationships without Composer
On this page you can find all versions of the php package mr-punyapal/laravel-extended-relationships. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mr-punyapal/laravel-extended-relationships
More information about mr-punyapal/laravel-extended-relationships
Files in mr-punyapal/laravel-extended-relationships
Package laravel-extended-relationships
Short Description Package provides additional, more efficient relationship methods for Laravel Eloquent models.
License MIT
Homepage https://github.com/mr-punyapal/laravel-extended-relationships
Informations about the package laravel-extended-relationships
laravel-extended-relationships
What is a need of extended relationships?
The laravel-extended-relationships package provides additional, more efficient relationship methods for Laravel Eloquent models. The package offers several useful features such as reducing the number of database queries, improving performance, and minimizing duplicate code.
I faced issue and made my own relationships then realize if I can use packages from open source then I can make one too and made this package.
Installation
You can install the package via composer:
Usage
First, include the HasExtendedRelationships
trait in your model:
Next, define the BelongsToManyKeys
relationship with the belongsToManyKeys
method:
This method takes three arguments:
- The related model (
User::class
) - The foreign key (
id
) - An array mapping the related table's foreign key names to the corresponding relation names on the model (
['created_by' => 'creator', ...]
)
Then, you can fetch data from the auditors relationship like so:
This allows you to define multiple relationships with just one method, and only a single query is fired in the database for all the relationships.
Inverse relationship.
To retrieve the audited posts of a user, you can use the audited relationship. Here's an example:
This allows you to define multiple relationships between models with a single method call, simplifying your code and reducing the number of queries executed.
HasManyArrayColumn
If you have a column companies in your users table which stores an array of local keys like [7, 71] or ["7", "71"], you can use the following relationship:
When fetching data, you can retrieve the related companies with:
This allows you to easily retrieve related records with an array of local keys, which can be useful in certain scenarios.
Inverse Relationship for HasManyArrayColumn
The BelongsToArrayColumn
method allows you to define a relationship between a model and an array column on another model.
if you have ["7", "71"] in array column and int 7 or 71 at your foreign-key then pass $isString
flag as true to get expected results.
Here's an example:
With this relationship defined, you can fetch related company founders with the following code:
This will provide you with data from the users
table where the companies
array column contains the value 71.
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
- MrPunyapal
- All Contributors
License
The MIT License (MIT). Please see License File for more information.