Download the PHP package spatie/laravel-prefixed-ids without Composer
On this page you can find all versions of the php package spatie/laravel-prefixed-ids. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download spatie/laravel-prefixed-ids
More information about spatie/laravel-prefixed-ids
Files in spatie/laravel-prefixed-ids
Package laravel-prefixed-ids
Short Description Friendly prefixed IDs for Laravel models
License MIT
Homepage https://github.com/spatie/laravel-prefixed-ids
Informations about the package laravel-prefixed-ids
Friendly prefixed IDs for Laravel models
Prefixing an id will help users to recognize what kind of id it is. Stripe does this by default: customer ids are prefixed with cus
, secret keys in production are prefixed with sk_live_
, secret keys of a testing environment with sk_test_
and so on....
This package can generate such friendly prefixed ids for Eloquent models. Here's how such generated ids could look like.
The package can retrieve the model for a given prefixed id.
Support us
We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.
We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.
Installation
You can install the package via composer:
Preparing your models
On each model that needs a prefixed id, you should use the Spatie\PrefixedIds\Models\Concerns\HasPrefixedId
trait.
Preparing the database
For each model that needs a prefixed id, you'll need to write a migration to add a prefixed_id
column to its underlying table.
If you wish to use another attribute name, you should publish the config file (see below) and set the prefixed_id_attribute_name
config value to the attribute name of your liking.
Registering models with prefixed ids
To register your models, you should pass the desired prefix and the class name of your model to PrefixedIds::registerModels
.
Typically, you would put the code above in a service provider.
Publish the config file
Optionally, You can publish the config file with:
This is the contents of the published config file:
Usage
When a model is created, it will automatically have a unique, prefixed id in the prefixed_id
attribute.
Finding a specific model
You can find the model with a given prefix by calling findByPrefixedId
on it.
Finding across models
You can call find
on Spatie\PrefixedIds\PrefixedIds
to automatically get the right model for any given prefixed id.
Customizing the unique ID generated
You can use the function Spatie\PrefixedIds\PrefixedIds::generateUniqueIdUsing()
to pass in a function to generate the unique ID. By default the library will use Str::uuid()
to generate the ID.
Using the prefixed ids in your routes
To use the prefixed ids in your routes, you'll have to add the getRouteKeyName
method to your model. It should return the name of the attribute that holds the prefixed id.
With this in place a route defined as...
... can be invoked with an URL like /api/your-models/your_model_fekjlmsme39dmMS
.
You'll find more info on route model binding in the Laravel docs.
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
- Freek Van der Herten
- All Contributors
This package is inspired by excid3/prefixed_ids
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-prefixed-ids with dependencies
facade/ignition-contracts Version ^1.0
illuminate/contracts Version ^10.0|^11.0|^12.0
spatie/laravel-package-tools Version ^1.9