Route model binding để Laravel tự truy vấn model từ tham số route và inject vào controller; không tìm thấy thì trả 404 luôn.
php
Route::get('/orders/{order}', fn (Order $order) => $order); // implicit binding theo primary keyBind theo cột khác — khai báo ngay trên route hoặc override getRouteKeyName() trên model:
php
Route::get('/posts/{post:slug}', ...);
// hoặc áp dụng cho mọi route của model
public function getRouteKeyName(): string { return 'slug'; }Scoped binding — khi route lồng nhau, thêm scopeBindings() để model con bắt buộc thuộc về model cha, thay vì query độc lập:
php
Route::get('/users/{user}/posts/{post:slug}', ...)->scopeBindings();Đây là điểm quan trọng về bảo mật: không có scope, /users/1/posts/abc vẫn trả về post abc của user khác.
Ngoài ra: Route::model() / Route::bind() cho explicit binding khi cần logic tra cứu riêng, và có thể thêm withTrashed() nếu muốn bind cả bản ghi đã soft-delete. Việc phân quyền vẫn phải làm riêng bằng Policy — binding chỉ lo tìm bản ghi.