Skip to content Skip to sidebar Skip to footer

Tutorial Laravel 8 - Belajar dan Memahami Route Part #2

Tutorial Laravel 8 - Belajar dan Memahami Route Part #2

Tutorial Laravel 8 - Belajar dan Memahami Route Part #2 - Halo teman-teman, kali ini kita akan melanjutkan pembahasan route di Laravel 8.

Pada tutorial sebelumnya, kita telah sampai pada pembahasan route parameter, dan kali ini kita akan lanjut mulai dari optional parameter.

Tutorial Sebelumnya: Belajar dan memahami Route Part #1

Pembahasan route di Laravel 8 kali ini akan disertai dengan contoh yang bisa kamu praktikkan.

Simak selengkapnya ...

Route Optional

Terkadang kita mungkin perlu menentukan parameter route, tetapi menjadikan keberadaan parameter route tersebut opsional. Maksud optional adalah parameter tersebut bisa digunakan bisa juga tidak.

Kita bisa melakukannya dengan menempatkan tanda ? setelah nama parameter. Tapi dengan syarat, yaitu pastikan memberikan nilai default pada variabel route yang sesuai.

Contoh:

Route::get('profile/{nama?}', function ($nama = null) {
    return $nama;
});

Route::get('profile/{nama?}', function ($nama = 'Budi') {
    return $nama;
});

Nah, dengan route seperti di atas, kita bisa memberikan parameter atau tidak memberikan parameter.

Cukup mudah, kan?

Membatasi Format Parameter

Di Laravel 8 kita bisa membatasi paramater yang diizinkan dalam suatu format tertentu. Dengan begitu, parameter akan dibatasi dan tidak boleh melanggar ketentuan yang kita buat. Caranya cukup mudah. Kita tinggal menambahkan keyword ->where('syarat').

Contoh:

Tipe 1: Hanya Boleh Huruf Saja

Route::get('profile/{nama}', function ($nama) {
    //
})->where('nama', '[A-Za-z]+');

Tipe 2: Hanya Boleh Angka Saja

Route::get('profile/{id}', function ($id) {
    //
})->where('id', '[0-9]+');

Tipe 3: Gabungan Huruf dan Angka

Route::get('profile/{id}/{nama}', function ($id, $nama) {
    //
})->where(['id' => '[0-9]+', 'nama' => '[a-z]+']);

Tipe 4: Menggunakan Ekspresi reguler

Untuk menambah kecepatan pada pembuatan skema format pada parameter, terkadang kita membutuhkan format pada umumnya.

Route::get('user/{id}/{nama}', function ($id, $name) {
    /a
})->whereNumber('id')->whereAlpha('nama');

Route::get('user/{id}', function ($id) {
    //
})->whereUuid('id');

Penjelasan:

  • Dengan menggunakan keyword whereNumber akan otomatis hanya angka saja yang diizinkan pada parameter.
  • Dengan menggunakan keyword whereAlpha akan otomatis hanya huruf saja yang diizinkan pada parameter.
  • Dengan menggunakan keyword whereUuid akan otomatis hanya id unik saja yang diizinkan pada parameter.

Tipe 4: Global Constraint

Kita juga bisa mengatur format setiap parameter dengan 1 kali kerja saja. Berbeda dengan tipe sebelumnya yang masing-masing harus dideklarasikan, tipe ini cukup sekali saja.

Silahkan buka file RouteServiceProvider.php dan pada function boot, ubah menjadi:

public function boot()
{
    Route::pattern('id', '[0-9]+');
}

Dengan kode di atas, maka semua param yang bernama "id" akan mendapatkan format hanya boleh diisi dengan angka saja. Kita juga bisa menambahkan untuk format lainnya di sini.

Tipe 5: Mengizinkan Slash "/" di Parameter

Pada dasarnya semua jenis tipe parameter diizinkan, kecuali /. Namun ada cara agar / bisa tetap digunakan. Caranya dengan menambahkan kode seperti di bawah ini:

Route::get('search/{search}', function ($search) {
    return $search;
})->where('search', '.*');

... dengan tambahkan .* akan membuat slash diizinkan.

Named Route

Kita dapat memberikan nama pada masing-masing route dengan menambahkan keyword name.

Contoh:

Route::get('user/profile', [UserProfileController::class, 'show'])->name('profile');

... dengan kode tersebut, kita dapat mengaksesnya dengan cara memanggil route('profile')

Contoh lainnya:

Route::get('user/{id}/profile', [UserProfileController::class, 'show'])->name('profile');

... dengan kode tersebut, kita dapat mengaksesnya dengan cara memanggil route('profile', ['id' => 1]).

Akhir Kata

Demikianlah pembahasan tutorial route di laravel 8 pada part ke 2 ini. Masih ada pembahasan part berikutnya. Jadi, simak terus wildanfuady.com untuk mendapatkan informasi terkait tutorial laravel 8 dari dasar.

Semoga bermanfaat. Aamiin.

Wildan Fuady
Wildan Fuady Seorang penulis, guru di sekolah swasta serta memiliki beberapa cabang bisnis secara online maupun offline