Did you know you can define custom route bindings in Laravel?
In this example, I need to resolve a portfolio by slug. But the slug is not unique, because multiple users can have a portfolio named 'Foo'
So I define how Laravel should resolve them from a route parameter
class RouteServiceProvider extends ServiceProvider{ public const HOME = '/dashboard'; public function boot() { Route::bind('portfolio', function (string $slug) { return Portfolio::query() ->whereBelongsto(request()->user()) ->whereSlug($slug) ->firstOrFail(); }); }}
Route::get('portfolios/{portfolio}', function (Portfolio $portfolio) { /* * The $portfolio will be the result of the query defined in the RouteServiceProvider */})
Tip given by @mmartin_joo
Enjoyed This Tip?
Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.
Recent Courses
Laravel Modules and DDD
16 lessons
1 h 59 min
PhpStorm Junie AI for Laravel Projects: Crash Course
7 lessons
36 min
Claude Code for Laravel Projects: Crash Course
8 lessons
48 min