Laravel : Route Parameter — basic

Dengan route parameter, kamu dapat menangkap informasi dinamis dari URL untuk digunakan dalam logika aplikasi kamu punya

Fadli Rivansyah
3 min readMay 27, 2024
Photo by Joakim Honkasalo on Unsplash

Pada pembahasan ini mengenai route parameter pada laravel. routing ini biasanya digunakan untuk mengambil segment yang ada di url seperti id user, excerpt, atau kata lain yang diperlukan. ini merupakan hal yang umum digunakan. kunjungi dokumentasi laravel agar makin paham :)

aku akan memberikan studi kasus sederhana menampilkan halaman edit dengan menerapkan route parameter.

Begini, anggap saja kita punya data yang sudah ditampilkan berbentuk tabel pada halaman website. setiap field berisi data dan fitur button create, edit, dan delete. pengembang akan menampilkan data dengan konsep looping dan tak lupa memberikan id atribut href pada setiap fitur tersebut. contohnya seperti ini.

{{-- button edit --}}
<a class="text-dark btn-hover" title="Ubah" href="/dashboard/zakat/{{$item->id}}/edit"><i class="bi bi-pencil fs-5"></i></a>

ketika button diklik, maka menuju kehalaman berdasarkan url, kamu bisa melihat gambar dibawah ini. halaman akan menampilkan status 404 karena tidak ada route itu pada sistem.

URL website

nah.. disinalah kita dapat menggunakan route parameter untuk menampilkan halaman tersebut, bagaimana cara menampilkan halaman itu, kita harus mengambil segmen berupa id user.

selanjunya bagaimana??

kita harus membuat routenya terlebih dahulu setelah itu diteruskan ke controller sesuai dengan class dan nama methodnya.

//contoh penggunaan route parameter dengan nama 'id'
Route::get('/dashboard/zakat/{id}/edit', [ZakatController::class,'editZakat']);

setelah sudah membuat route, selanjutnya ke ZakatController dan membuat method editZakat(). berikut code dari method editZakat().

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;

class ZakatController extends Controller
{
public function editZakat($id)
{
$dataZakat = Zakat::find($id);
return view('dashboard.zakat.editZakat',[
'title' => 'Edit Zakat',
'dataZakat' => $dataZakat
]);
}
}

sekarang kita melihat method editZakat(), kita harus menambahkan parameter dengan nama yang sesuai dengan pendeklarasian pada route sebelumnya yaitu $id. tanpa sadar kita sudah memanfaatkan route parameter untuk mengambil id user dan itu berhasil. kita bisa menemukan data berdasarkan parameter dan menampilkannya ke halaman website.

studi kasus diatas merupakan salah satu contoh penggunaan route parameter.

Route Parameter

Route parameter merupakan url route yang berisi parameter didalamnya dengan menggunakan curlybraces { }. contohnya sebagai berikut.

//contoh penggunaan parameter dengan nama 'id'
Route::get('/dashboard/zakat/{id}/edit', [ZakatController::class,'editZakat']);

biasanya seperti itu mendeklarasikan parameter pada route. kamu juga bisa lebih dari satu untuk mengunakan parameter. mungkin saja kamu membutuhkan dalam projekmu. berikut contohnya.

// menerapkan 2 parameter 'id' dan 'idmuzakki'
Route::get('/dashboard/zakat/{id}/view/{idMuzakki}/edit', [ZakatController::class, 'editMuzakki']);

kita bisa mengambil data parameter ini yang dapat dikelolah oleh controller. jika parameter lebih dari satu kamu bisa menambahkan juga di parameter method controller.

Optional Parameter

selain pengunaan route prameter seperti diatas. kita juga bisa menggunakan optional parameter. melakukan lebih dari satu tindakan dengan satu route. dari sumber yang penulis ketahui optional parameter tidak boleh dipakai secara berlebihan, karena dapat membingungkan dalam proses pengembangan.

untuk membuat optional parameter, kamu bisa meletakan tanda tanya( ? ) setelah nama parameter contohnya seperti ini { name? }. setelah itu tambahkan closure dengan parameter name. lihat contoh di bahwa ini.

Route::get('/nama/{name?}', function (?string $name=null) {
if($name !== null){
return 'jaka';
}else{
return 'lana';
}
});

kita bisa melihat code diatas, ketika user menuliskan url di website dengan ‘/name’ maka akan mengembalikan nilai ‘lana’.

jika user menambahkan url seperti ‘/name/koko’ maka akan mengembalikan nilai ‘jaka’. kenapa itu terjadi karena {name?} akan menjadi optional, jika ‘koko’ diganti dengan kata lain maka akan mengembalikan nilai ‘jaka’ juga.

Route parameter merupakan fitur yang sangat membantu jika kita memakai sesuai dengan kebutuhan, menampilkan data dengan mengambil segmen itu mudah dengan route parameter. optional parameter juga membantu kita menjadi lebih fleksibel dalam menampilkan halaman. sebenarnya masih ada fitur yang berkaitan dengan route parameter. silakan kunjungi sistem resmi laravel.

terimah kasih telah membaca artikel aku,semoga bermanfaat dan membantu kamu dalam belajar route parameter. jika ada kesalahan jangan lupa diluruskan, agar kita sama-sama belajar disini :)

--

--

Fadli Rivansyah
Fadli Rivansyah

Written by Fadli Rivansyah

As web development | interested in laravel technology

No responses yet