LaravelPackages.net
Acme Inc.
Toggle sidebar
touhidurabir/laravel-multi-key-route-binding

A simple laravel package to handle multiple key based model route binding

2.210
13
1.0.1
About touhidurabir/laravel-multi-key-route-binding

touhidurabir/laravel-multi-key-route-binding is a Laravel package for a simple laravel package to handle multiple key based model route binding. It currently has 13 GitHub stars and 2.210 downloads on Packagist (latest version 1.0.1). Install it with composer require touhidurabir/laravel-multi-key-route-binding. Discover more Laravel packages by touhidurabir or browse all Laravel packages to compare alternatives.

Last updated

Laravel Multi Key Route Binding

A simple package to handle the multiple key/column based route model binding for laravel package

Installation

Require the package using composer:

composer require touhidurabir/laravel-multi-key-route-binding

Usage

Use the trait HasMultipleRouteBindingKeys in model where uuid needed to attach

use Touhidurabir\MultiKyeRouteBinding\HasMultipleRouteBindingKeys;
use Illuminate\Database\Eloquent\Model;

class User extends Model {
    
    use HasMultipleRouteBindingKeys;
}

And then add the protected property $routeBindingKeys which will contails the list of other route binding keys.

/**
 * The attributes that will be used for multiple key binding on route models
 *
 * @var array
 */
protected $routeBindingKeys = [
    'email',
    'username'
];

By default column id is considered as the primary key for route model binding . But it is always possible to override/customize the primary key for route binding as per laravel doc

/**
 * Get the route key for the model.
 *
 * @return string
 */
public function getRouteKeyName()
{
    return 'slug';
}

The package also provide a bit of safe guard by checking if the model table has the given binding key column .

If the binding key column not found for model table schema, it will skip that binding key.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

Comments