Tweak Laravel Routes to Fit Your Needs



This content originally appeared on DEV Community and was authored by Mahmoud Ramadan

Laravel offers flexible methods for handling route model binding. You can bind models dynamically by assigning a variable to a model, and also customize this behavior using the model method:

use App\Models\User;
use Illuminate\Support\Facades\Route;

/**
 * Bootstrap any application services.
 */
public function boot(): void
{
    Route::model('user', User::class);
}

By default, Laravel uses the findOrFail method to resolve route parameters. However, you can customize this behavior using the bind method to look up a model using alternative logic:

use App\Models\User;
use Illuminate\Support\Facades\Route;

/**
 * Bootstrap any application services.
 */
public function boot(): void
{
    Route::bind('user', function (string $value) {
        return User::where('name', $value)->firstOrFail();
    });
}

Finally, when working with resourceful routes, Laravel offers a convenient shorthand for defining the typical seven resource routes. You can also customize the route URIs using the resourceVerbs method:

use Illuminate\Support\Facades\Route;

/**
 * Bootstrap any application services.
 */
public function boot(): void
{
    Route::resourceVerbs([
        'create' => 'crear',
        'edit'   => 'editar',
    ]);
}


This content originally appeared on DEV Community and was authored by Mahmoud Ramadan