propaganistas/laravel-fakeid
Automatic ID obfuscation for Eloquent models.
Maintainers
Fund package maintenance!
Requires
- php: ^8.0
- illuminate/config: ^9.0|^10.0
- illuminate/container: ^9.0|^10.0
- illuminate/routing: ^9.0|^10.0
- illuminate/support: ^9.0|^10.0
- jenssegers/optimus: ^1.0
Requires (Dev)
- orchestra/testbench: *
- phpunit/phpunit: ^9.5.10
Suggests
- vinkla/hashids: Laravel-FakeId is deprecated
Provides
None
Conflicts
None
Replaces
None
MIT 908618820044e07c3a0ebfecdf17efb479717302
- Propaganistas <Propaganistas.woop@users.noreply.github.com>
README
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.
Installation
-
Run the Composer require command to install the package
composer require propaganistas/laravel-fakeid
-
The package will automatically register itself.
-
Run the following artisan command to auto-initialize the package's settings
php artisan fakeid:setup
Usage
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.
Example
Assuming an Article model having a named show route.
routes/web.php:
Route::get('articles/{article}', 'ArticleController@show')->name('articles.show');
app/Article.php
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('articles.show', $article) }}"> {{ $article->name }} </a>
