Cara Menggunakan Route Resource Laravel

Budi Setiawan
3 min readOct 16, 2024

--

Hari ini kita akan membahas salah satu fitur yang sangat berguna, yaitu Route::resource. Siapkan mug kopi kamu, karena kita akan berkelana bersama dalam hutan rute yang penuh dengan petulangan.

Definisi dan Fungsi Route::resource

Mari kita mulai dari definisi. Route::resource adalah metode yang disediakan Laravel untuk pembuatan rute secara otomatis yang mengikuti konvensi RESTful. Bayangkan bahwa kamu seorang chef dan Route::resource adalah alat dapur yang membantu kamu mengatur semua bahan makanan dengan cara yang rapi dan teratur, sehingga tidak ada yang mengendap di sudut-sudut dapur (atau aplikasi kamu).

Dengan menggunakan Route::resource, kamu bisa dengan mudah membuat rute untuk berbagai tindakan CRUD (Create, Read, Update, Delete), semua dalam satu baris kode saja. Ini seperti memasukkan semua bahan makanan ke dalam panci dan voila! Kamu mendapatkan hidangan yang lezat (atau rute yang menawan).

Contoh Kode:

Route::resource('buku', 'BukuController');

Apa yang dilakukan kode di atas? Dengan satu baris sederhana, kami telah menciptakan tujuh (ya, tujuh!) rute yang siap pakai untuk mengelola sumber daya Buku. Dan siapa bilang kita tidak bisa multitasking?

Berikut adalah rute yang dihasilkan di belakang layar:

  • GET /buku — index
  • GET /buku/create — create
  • POST /buku — store
  • GET /buku/{buku} — show
  • GET /buku/{buku}/edit — edit
  • PUT/PATCH /buku/{buku} — update
  • DELETE /buku/{buku} — destroy

Luar biasa, bukan? Kamu bisa mengelola data Buku hanya dengan memanggil metode yang sudah ada dalam controller, selayaknya jari-jarimu asyik menari di atas tuts piano!

Customisasi Resource Route

Sekarang, mari kita bicarakan tentang customisasi rute sumber daya. Tentu saja, terkadang kita ingin menjadi lebih kreatif dan unik, bukan? Seperti membuat masakan yang bukan hanya enak, tetapi juga Instagrammable. Dalam hal ini, kita dapat melakukan customisasi pada Route::resource.

Misalnya, diasumsikan bahwa kita memiliki seorang chef yang sangat terorganisir dan ingin menambahkan beberapa rute khusus. Kita bisa menggunakan metode ini untuk menambahkan rute yang tidak terduga!

Contoh Kode:

Route::resource('buku', 'BukuController')->except(['create', 'edit']);
Route::get('buku/{buku}/preview', 'BukuController@preview');

Di sini, kita menggunakan metode except untuk menghilangkan beberapa rute yang tidak kita perlukan (misalnya, tidak ingin membuat buku baru secara sembarangan). Selain itu, kita juga menambahkan rute khusus untuk melihat preview buku. Jadi, jika kamu merasa ragu untuk menerbitkan buku, kamu bisa memberikan 'sneak peek' kepada pembaca terlebih dahulu!

Penggunaan Controller Resource

Nah, setelah kita mengatur semua rute, saatnya menjelajahi controller resource. Controller resource adalah pahlawan super di balik layar, yang akan menangani semua aksi saat pengguna berinteraksi dengan rute yang telah kita buat. Seperti superhero yang siap menyelamatkan hari, controller resource memiliki metode untuk setiap aksi yang kita butuhkan.

Contoh Kode:

namespace App\Http\Controllers;

use App\Models\Buku;
use Illuminate\Http\Request;
class BukuController extends Controller
{
public function index()
{
$buku = Buku::all();
return view('buku.index', compact('buku'));
}

public function create()
{
return view('buku.create');
}

public function store(Request $request)
{
Buku::create($request->all());
return redirect()->route('buku.index');
}

public function show(Buku $buku)
{
return view('buku.show', compact('buku'));
}

public function edit(Buku $buku)
{
return view('buku.edit', compact('buku'));
}

public function update(Request $request, Buku $buku)
{
$buku->update($request->all());
return redirect()->route('buku.index');
}

public function destroy(Buku $buku)
{
$buku->delete();
return redirect()->route('buku.index');
}

}

Dalam BukuController, kita memiliki semua metode yang dihasilkan (kecuali yang kita tolak menggunakan except sebelumnya). Mulai dari menampilkan daftar buku, hingga membuat, memperbarui, dan menghapus—semuanya ada di sini!

Laravel membuat hidupmu lebih sederhana dan menyenangkan, serta memberi kebebasan berkreasi. Teruslah bereksperimen dan bermain dengan kode, siapa tahu kamu menemukan resep rahasia untuk aplikasi yang luar biasa (atau setidaknya, aplikasi yang tidak terhipnotis oleh bugs)!

Sudah selesai baca artikelnya? Bagus! Tapi tunggu dulu… tidak lengkap kalau tidak up-grade skill anda! Yuk, cek kelas online saya, biar anda bisa bilang, “Laravel? Gampang banget!” 😄:
- Bangun Aplikasi Laravel Modern Menggunakan React InertiaJS

--

--

Budi Setiawan
Budi Setiawan

No responses yet