laravel route model binding code example

Example 1: named route with parameter laravel

Route::get('/menu/{category}/{product}/{item}', ['as' => 'named.route' , 'uses' => 'MenuController@listItem']);

// to get the actual linke
route('named.route', ['category' => $category->id, 'product' => $product->id, 'item' => $item->id]);

Example 2: laravel route

# Using Request
Route::get('user/{name}', function (Request $request) {
    return $request->route('name');
});

Example 3: laravel route

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

Example 4: explicit route model binding in laravel

// In RouteServiceProvider
 public function boot()
    {
   		//don't forget import model at the top
        Route::model('unique_key', Blog::class);
        Route::bind('unique_key', function ($value) {
            return Blog::findOrFail($value);
           //return Blog::where('something', $value)->firstOrFail();
        });
   
   //default laravel codes
 }

Example 5: laravel route

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

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

Example 6: 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();
}

Tags: