Tanggal :21 November 2025
Laravel 7 Route Custom Key Name, Route Model Binding

Laravel 7 : Route Model Binding Lebih Praktis

Artikel ini bagian ke 1 dari total 2 artikel di seri Fitur Baru Laravel 7

Assalamualaikum Warohmatulloh Wabarokatuh, setelah rilis Laravel 7 beberapa waktu lalu, kali ini saya akan membahas detail satu persatu perubahan yang terjadi di Laravel 7. Pertama kita akan bahas tentang mendefinisikan custom key pada routing atau route model binding di Laravel.

Oke secara gampangnya ketika kita ingin mengubah key dari route kita yang pada default adalah menggunakan primary key atau id. Maka sewajarnya untuk mengubahnya menggunakan custom key maka kita definiskan atau tambahkan baris kode untuk override method getRouteKeyName(). Kurang lebih seperti ini jika kita mau mengubah key name menjadi slug atau mengambil field slug pada table.

public function getRouteKeyName()
{
   return 'slug';
}

Pada Laravel 7 hal tersebut bisa dilakukan dengan lebih sederhana, dengan mendefiniskan custom key pada file route dengan menambahkan tanda : diikuti dengan nama field / key yang akan digunakan.

use App\Article;

Route::get('/articles/{article:slug}', function(Article $article) {
    return $article;
});

Kode diatas akan memiliki fungsi yang sama dengan kode yang kita gunakan untuk override method getRouteKeyName().

Kadang kita diahadapkan pada kondisi dimana kita harus mengirimkan 2 atau lebih paramter / model pada route model binding, dan mungkin kita ingin membuat sebuah cakupan / scope, model kedua harus merupakan anak / child dari model pertama. Contohnya pada sebiuah kasus kita ingin menampilkan sebuah artikel berdasarkan slug untuk user terntentu.

use App\Article;
use App\User;

Route::get('/users/{user}/articles/{article:slug}', function (User $user, Article $article) {
    return $article;
});

Untuk lebih jelasnya mungkin kawan kawan bisa mengikuti video dibawah ini.

Seperti itulah mudahnya membuat custom key pada route model binding di Laravel 7.

Wassalamualaikum Warohmatulloh Wabarokatuh .

Series NavigationLaravel 7 : HTTP Client >>

Hai semua, saya Amirul seorang Software Engineer, suka membuat konten pembelajaran berupa artikel, video tutorial maupun podcast

2 Comments

Tinggalkan Balasan