Search code examples
databaselaravellaravel-5.6dynamic-url

how to create dynamic url using get Route rather then id in Laravel 5.6


i want to create dynamic URL Route rather then id. I want to create url column in database i want use that column to create url in route.

Route::get('our-services/{service}', 'ServiceController@show');

it's my route code, using this route url look like this

127.0.0.1:8000/1

but i want to create like this,

127.0.0.1:8000/name

it's my link code that are create dynamically

<a href="{{url('our-services/'.$service->url)}}" class="small white uppercase font-weight-6 underline">Read More</a>

it's dynamic url that create from database colum.


Solution

  • You use route model binding to customize the resolution logic. In the RouteServiceProvider boot method:

    Route::bind('service', function ($value) {
        return App\Service::where('url', $value)->first() ?? abort(404);
    });