Route Parameter


Pada Laravel, route parameter digunakan untuk menangkap variabel yang ditentukan dalam URL. Ini memungkinkan Anda untuk membuat URL yang dinamis dan menyampaikan informasi ke controller Anda.

Menyiapkan Proyek Laravel

Sebelum kita mulai, pastikan Anda memiliki proyek Laravel yang sedang berjalan. Jika belum, Anda bisa membuat proyek baru dengan perintah:

composer create-project --prefer-dist laravel/laravel namaProyek

Gantilah namaProyek dengan nama favorit Anda.

Membuat Route dengan Parameter

Untuk mendefinisikan route parameter, kita bisa menggunakan tanda kurung kurawal {} dalam rute yang kita buat di file routes/web.php. Berikut adalah contoh bagaimana cara mendefinisikan route parameter:

use Illuminate\Support\Facades\Route;

Route::get('/user/{id}', function ($id) {
    return 'User ID: ' . $id;
});

Dalam contoh di atas, ketika Anda mengakses URL /user/1, akan mengembalikan teks User ID: 1.

Menangkap Beberapa Parameter

Anda juga dapat menangkap lebih dari satu parameter dalam URL. Contohnya:

Route::get('/post/{postId}/comment/{commentId}', function ($postId, $commentId) {
    return 'Post ID: ' . $postId . ', Comment ID: ' . $commentId;
});

Akses URL /post/10/comment/5 akan mengembalikan Post ID: 10, Comment ID: 5.

Parameter Opsional

Kadang-kadang Anda mungkin ingin membuat parameter menjadi opsional. Anda dapat melakukannya dengan menambahkan tanda tanya ? setelah nama parameter:

Route::get('/user/{id?}', function ($id = null) {
    return 'User ID: ' . $id;
});

Dengan cara ini, jika kita mengakses /user, maka $id akan bernilai null, dan jika kita mengakses /user/1, maka akan mengembalikan User ID: 1.

Menggunakan Route Parameter di Controller

Selain menggunakan closure, Anda dapat menggunakan route parameter di controller. Contohnya:

  1. Buatlah controller baru:

    php artisan make:controller UserController
  2. Tambahkan method di UserController:

    public function show($id)
    {
       return 'User ID: ' . $id;
    }
  3. Definisikan route untuk controller tersebut di routes/web.php:

    Route::get('/user/{id}', [UserController::class, 'show']);

Validasi Route Parameter

Anda juga bisa melakukan validasi untuk route parameter menggunakan where untuk menentukan pola:

Route::get('/user/{id}', function ($id) {
    return 'User ID: ' . $id;
})->where('id', '[0-9]+'); // hanya menerima id yang berupa angka

Dengan menggunakan .where(), route ini hanya akan menerima id yang berupa angka (0-9).

Kesimpulan

Route parameter pada Laravel sangat membantu dalam membuat aplikasi yang dinamis dan interaktif. Anda dapat menangkap informasi dari URL dan menggunakannya di dalam aplikasi Anda. Dengan contoh di atas, Anda sekarang memiliki pemahaman dasar tentang cara menggunakan route parameter di Laravel.

Referensi

Untuk informasi lebih lanjut, Anda bisa merujuk ke dokumentasi resmi Laravel.

Selamat mencoba!