DEV Community

Mahmoud Ramadan
Mahmoud Ramadan

Posted on

Tweak Laravel Routes to Fit Your Needs

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);
}
Enter fullscreen mode Exit fullscreen mode

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();
    });
}
Enter fullscreen mode Exit fullscreen mode

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',
    ]);
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)