model binding laravel code example

Example 1: laravel route

Route::get('user/{id}', function ($id) {
    return 'User '.$id;
});

Example 2: laravel route

Route::get('user/profile', [UserProfileController::class, 'show'])->name('profile');

Example 3: laravel route

Route::view('/welcome', 'welcome');

Route::view('/welcome', 'welcome', ['name' => 'Taylor']);

Example 4: route parameter type laravel

Route::get('/user/{name}', function ($name) {
    //
})->where('name', '[A-Za-z]+');

Route::get('/user/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Route::get('/user/{id}/{name}', function ($id, $name) {
    //
})->where(['id' => '[0-9]+', 'name' => '[a-z]+']);

reference : https://laravel.com/docs/8.x/routing#parameters-regular-expression-constraints

Example 5: laravel route model binding

Route::bind('user', function($value)
{
    return User::where('name', $value)->first();
});

// We can And Do also this in model..

/**
 * Retrieve the model for a bound value.
 *
 * @param  mixed  $value
 * @param  string|null  $field
 * @return \Illuminate\Database\Eloquent\Model|null
 */
public function resolveRouteBinding($value, $field = null)
{
    return $this->where('name', $value)->firstOrFail();
}