Pluginify

Masuk Daftar
Home > Blog > Laravel > Memahami Resource Controller Laravel untuk CRUD Standar

Memahami Resource Controller Laravel untuk CRUD Standar

Memahami Resource Controller Laravel untuk CRUD Standar

Resource Controller Laravel merupakan komponen yang berfungsi untuk menyederhanakan proses pembuatan fungsi CRUD secara terstruktur. Dengan pendekatan ini, Laravel menyediakan serangkaian metode bawaan yang sesuai untuk menangani permintaan seperti menampilkan data, membuat data baru, mengupdate, hingga menghapus data. Hal ini membuat workflow pengembangan lebih konsisten karena controller memiliki pola dan metode baku.

Selain mempermudah penataan kode, penggunaan Resource Controller juga membantu memisahkan logika aplikasi sesuai standar RESTful. Setiap tindakan memiliki endpoint dan metode HTTP yang sesuai sehingga mempermudah integrasi dengan frontend maupun API. Pendekatan ini menjadikan pengembangan CRUD lebih efisien dan rapi.

Apa Itu Resource Controller?

Resource Controller adalah controller yang memiliki metode standar yang mewakili setiap tindakan CRUD. Laravel otomatis menghasilkan metode-metode tersebut ketika kita membuat sebuah Resource Controller melalui perintah artisan.

Dengan cara ini, developer tidak perlu membuat metode satu per satu, melainkan cukup menggunakan struktur default yang sudah disediakan Laravel.


Membuat Resource Controller

Untuk membuat Resource Controller, gunakan perintah:

php artisan make:controller PostController --resource

Perintah ini akan menghasilkan file controller dengan struktur metode CRUD lengkap.

Filenya berada di:

app/Http/Controllers/PostController.php

Struktur Metode Resource Controller

Berikut adalah daftar metode yang dicakup dalam Resource Controller:

  • index() — Menampilkan daftar data
  • create() — Menampilkan form pembuatan data baru
  • store() — Menyimpan data baru ke database
  • show() — Menampilkan detail data
  • edit() — Menampilkan form edit data
  • update() — Memperbarui data yang ada
  • destroy() — Menghapus data

Meskipun struktur ini default, developer tetap dapat menambahkan metode tambahan jika diperlukan.


Menghubungkan Resource Controller ke Route

Untuk mengaktifkan routing otomatis CRUD, tambahkan:

Route::resource('posts', PostController::class);

Route ini akan menghasilkan endpoint otomatis seperti:

  • GET /posts → index
  • GET /posts/create → create
  • POST /posts → store
  • GET /posts/{id} → show
  • GET /posts/{id}/edit → edit
  • PUT/PATCH /posts/{id} → update
  • DELETE /posts/{id} → destroy

Dengan satu baris kode di atas, seluruh route CRUD langsung tersedia.


Contoh Implementasi Resource Controller

Misalkan kita ingin menampilkan daftar post pada metode index:

public function index()
{
    $posts = Post::all();
    return view('posts.index', compact('posts'));
}

Contoh menyimpan data di metode store:

public function store(Request $request)
{
    $request->validate([
        'title' => 'required|string',
        'content' => 'required|string',
    ]);

    Post::create($request->only(['title', 'content']));

    return redirect()->route('posts.index');
}

Contoh menghapus data di metode destroy:

public function destroy(Post $post)
{
    $post->delete();
    return redirect()->route('posts.index');
}

Form Update dan Edit

Form edit umumnya mengarah ke metode update. Contoh penggunaan:

<form action="{{ route('posts.update', $post->id) }}" method="POST">
    @csrf
    @method('PUT')
    <input type="text" name="title" value="{{ $post->title }}">
    <textarea name="content">{{ $post->content }}</textarea>
    <button type="submit">Update</button>
</form>

Method PUT atau PATCH diperlukan karena HTML hanya mendukung GET/POST sehingga Laravel menyediakan metode buatan dengan @method().


Keunggulan Resource Controller

Penggunaan Resource Controller memberikan beberapa kelebihan:

  1. Struktur controller yang konsisten
  2. Mendukung standar RESTful
  3. Mengurangi duplikasi code
  4. Memudahkan integrasi API dan frontend
  5. Mempercepat proses pembuatan CRUD

Dengan manfaat tersebut, Resource Controller sangat direkomendasikan untuk aplikasi CRUD skala kecil hingga menengah.

Kesimpulan

Resource Controller adalah fitur penting dalam Laravel yang menyediakan struktur CRUD secara otomatis melalui metode standar yang telah ditentukan. Dengan mengadopsi pendekatan ini, kode menjadi lebih terorganisir, modular, serta mudah dipelihara. Pada proyek yang menerapkan arsitektur RESTful, Resource Controller memberikan efisiensi signifikan dalam pengembangan.

Baca Juga: Panduan File Upload Laravel untuk Penanganan Berkas

Pluginify
Pluginify