This package is abandoned and no longer maintained. The author suggests using the vinkla/hashids package instead.

Automatic ID obfuscation for Eloquent models.

Fund package maintenance!

Installs: 176 958

Dependents: 2

Suggesters: 0

Security: 0

Stars: 203

Watchers: 8

Forks: 13

Open Issues: 0

4.2.3 2024-03-12 12:12 UTC


Looking for a new maintainer. If no maintainer is found by December 2025, this repository will be deleted.

Use hashids instead.

Laravel FakeID

Tests Latest Stable Version Total Downloads License

Enables automatic Eloquent model ID obfuscation in routes using Optimus.


  1. Run the Composer require command to install the package

    composer require propaganistas/laravel-fakeid
  2. The package will automatically register itself.

  3. Run the following artisan command to auto-initialize the package's settings

    php artisan fakeid:setup


Simply import the RoutesWithFakeIds trait into your model:

use Illuminate\Database\Eloquent\Model;
use Propaganistas\LaravelFakeId\RoutesWithFakeIds;

class MyModel extends Model
    use RoutesWithFakeIds;

All routes generated for this particular model will expose a fake ID instead of the raw primary key. Moreover incoming requests containing those fake IDs are automatically converted back to a real ID. The obfuscation layer is therefore transparent and doesn't require you to rethink everything. Just use Laravel as you normally would.


Assuming an Article model having a named show route.


Route::get('articles/{article}', 'ArticleController@show')->name('');


use Illuminate\Database\Eloquent\Model;
use Propaganistas\LaravelFakeId\RoutesWithFakeIds;

class Article extends Model
    use RoutesWithFakeIds;

A route to this specific endpoint can now be generated using Laravel's route() helper, and it will automatically contain a fake ID:

<a href="{{ route('', $article) }}"> {{ $article->name }} </a>