In Laravel il binding tra route e modelli può avvenire in modo implicito.

Se in una route è presente l'ID di un record del database come parametro, Laravel reperirà in modo automatico tale record utilizzando il modello passato come parametro alla funzione o al metodo del controller che gestisce la route.


use App\Post;

Route::get('/posts/{post}', function (Post $post) {
    return view('posts.single', compact('post'));
});

Se si vuole usare una chiave diversa dall'ID, si può personalizzare il parametro della route in questo modo.


use App\Post;

Route::get('/posts/{post:slug}', function (Post $post) {
    return view('posts.single', compact('post'));
});

In questo caso verrà usato il campo slug come chiave primaria.