Route Key Model Binding
Dulunya, mungkin ini sangat repot, kita harus definisikan key apa yang ingin kita jadikan wildcardnya seperti berikut.
Share
Dulunya mungkin ini sangat repot, kita harus definisikan key apa yang ingin kita jadikan wildcardnya seperti berikut.
public function getRouteKeyName() { return 'slug'; // the key }
phpCopy
Tapi sekarang, tidak perlu. Kita hanya perlu membuat seperti berikut.
Route::get('posts/{post:slug}', '[email protected]');
phpCopy
Kemudian, ketika kita ingin tambah parameter seperti subjek / kategori, kita hanya perlu menambahkannya seperti berikut.
Route::get('posts/{category:slug}/{post:slug}', '[email protected]');
phpCopy
Dulu yang kita lakukan adalah mendefinisikan nama key disetiap model yang ada, begitupun, tetap aja walau salah kategorinya tapi post slug nya benar, tetap bisa di akses. Atau kalau mau, terpaksa kita buat seperti ini.
Route::get('posts/{category}/{postSlug}', '[email protected]');
phpCopy
Dan kemudian, kita cek apakah id kategori = id kategory yang ada di tabel posts seperti berikut.
public function show(Category $category, $postSlug) { $post = Post::where('category_id', $category->id)->where('slug', $postSlug)->first(); return $post; }
phpCopy
Namun sekerang itu tidak perlu, jadi bagaimana ? Well, It's very simple.
public function show(Category $category, Post $post) { return $post; }
phpCopy
Maka, jika Anda mencoba membuat salah kategorinya, maka akan otomatis post akan tidak ditemukan.
That's it for today.