Have you ever wanted to generate Stripe-like IDs for your Eloquent models? This package does exactly that!
You can install the package via composer:
composer require tailflow/laravel-human-readable-keys- Change type of the
id(or whatever your primary key column is) tostringin the migration
Schema::create('users', function (Blueprint $table) {
$table->string('id');
...
});- Add
HasHumanReadableKeytrait to a model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;
class User extends Model
{
use HasHumanReadableKey;
...
}- (Optional) Customize key prefix and length
By default, a singular form of the table name is used as prefix for generated keys. You can customize that by overriding
the getKeyPrefix method on the model:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;
class User extends Model
{
use HasHumanReadableKey;
...
public function getKeyPrefix(): string
{
return 'account';
}
}Generated keys contain a unique hash that is 24 characters in length. To customize hash length, override the getKeyLength method:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Tailflow\HumanReadableKeys\Concerns\HasHumanReadableKey;
class User extends Model
{
use HasHumanReadableKey;
...
public function getKeyLength(): string
{
return 16;
}
}The MIT License (MIT). Please see License File for more information.