Home Web Laravel Routes Model Binding di Laravel

Routes Model Binding di Laravel

0

#Routes Model Binding

Saat menyuntikkan ID model ke tindakan rute atau pengontrol, Anda akan sering meminta untuk mengambil model yang sesuai dengan ID itu. Pengikatan model rute Laravel menyediakan cara mudah untuk secara otomatis memasukkan contoh model langsung ke rute Anda. Misalnya, alih-alih menyuntikkan ID pengguna, Anda dapat menyuntikkan seluruh instance model Pengguna yang cocok dengan ID yang diberikan. adapun jenisnya ada 2 yaitu :


1. Implicit Binding

Laravel secara otomatis menyelesaikan model Eloquent yang ditentukan dalam tindakan rute atau pengontrol yang nama variabelnya sesuai dengan nama segmen rute. Sebagai contoh:

Route::get(‘api/users/{user}’, function (App\User $user) {

    return $user->email;

});

Karena variabel $user diisyaratkan sebagai model App\User Eloquent dan nama variabel cocok dengan segmen URI {user}, Laravel akan secara otomatis memasukkan instance model yang memiliki ID yang cocok dengan nilai yang sesuai dari URI permintaan. Jika contoh model yang cocok tidak ditemukan dalam database, respons HTTP 404 akan dibuat secara otomatis.

2. Explicit Binding

Untuk mendaftarkan pengikatan eksplisit, gunakan metode model router untuk menentukan kelas untuk parameter yang diberikan. Anda harus mendefinisikan binding model eksplisit Anda dalam metode boot kelas RouteServiceProvider:

public function boot()

{

    parent::boot();

 

    Route::model(‘user’, App\User::class);

}

Selanjutnya, tentukan rute yang berisi parameter {user}:

Route::get(‘profile/{user}’, function (App\User $user) {

    //

});

Karena kita telah mengikat semua parameter {user} ke model App\User, instance User akan dimasukkan ke dalam rute. Jadi, misalnya, permintaan ke profile/1 akan menyuntikkan instance Pengguna dari database yang memiliki ID 1. Jika contoh model yang cocok tidak ditemukan dalam database, respons HTTP 404 akan dibuat secara otomatis.