Skip to content

A simple trait to access your Eloquent relations using its snake_case property

License

Notifications You must be signed in to change notification settings

CupOfTea696/EloquentSnakeCaseRelations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latest Stable Version Total Downloads Latest Unstable Version StyleCI License

Eloquent snake_case Relations

A simple trait to access your Eloquent relations using its snake_case property

Installation

Install via composer by running composer require cupoftea/eloquent-snake-relations.

Once installed, Models created via the make:model command will automatically extend CupOfTea\Database\Eloquent\Model to allow relation access via the snake_cased relation name.

To update the User Model, replace the Illuminate\Foundation\Auth\User import with CupOfTea\Auth\User. You can keep the alias used for the import.

If you have already created some Models in your Application, simply replace the Illuminate\Database\Eloquent\Model import with CupOfTea\Database\Eloquent\Model, or for Pivot Models, replace the Illuminate\Database\Eloquent\Relations\Pivot import with CupOfTea\Database\Eloquent\Relations\Pivot.

Alternatively, if you are extending your own Model class, you can use the CupOfTea\Database\Eloquent\Concerns\HasSnakeCaseRelations trait on that Model, or extend it from CupOfTea\Database\Eloquent\Model instead of Illuminate\Database\Eloquent\Model.

Usage

To access your model relations, you can now use the snake_case property, even if your relation method is camelCase. For example, if your your relationship method is defined as User::creditCards(), you can access it via $user->credit_cards.

Note: Please note that only property access can use snake_case. Additional relationship queries or eager loading should still use the relationship method name as is. For example, $creditCards = User::find(1)->creditCards()->orderBy('expires')->get();, or $users = User::with('creditCards')->all();

About

A simple trait to access your Eloquent relations using its snake_case property

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages