Laravel #3: Controller

Laravel #3: Controller

Setelah kita mengenal Routing dan View dalam Laravel, sekarang saatnya kita membahas tentang Controller, salah satu komponen utama dalam arsitektur Model-View-Controller (MVC) yang digunakan dalam pengembangan aplikasi web menggunakan Laravel. Controller bertanggung jawab untuk mengelola logika aplikasi dan berfungsi sebagai perantara antara Routing dan View.

Apa Itu Controller?

Controller merupakan kelas PHP yang digunakan untuk mengelola permintaan HTTP dari pengguna dan memberikan respons yang sesuai. Ketika pengguna melakukan aksi di aplikasi web, seperti mengakses halaman, mengirim form, atau memanggil API, permintaan tersebut akan diteruskan ke controller yang akan menangani logika dan kembali memberikan respons kepada pengguna, baik berupa tampilan (View) atau data JSON.

Membuat Controller

Untuk membuat controller pada Laravel, kita dapat menggunakan perintah artisan yang sudah disediakan.

php artisan make:controller ExampleController

Gantilah "NamaController" dengan nama yang sesuai untuk controller yang ingin Anda buat. Setelah perintah dijalankan, Laravel akan membuat file controller baru dalam folder app/Http/Controllers.

Struktur Controller

Sebuah controller biasanya terdiri dari beberapa metode (fungsi) yang berfungsi untuk menangani berbagai jenis permintaan yang diterima oleh aplikasi. Misalnya, dalam controller yang menangani entitas "User", kita mungkin memiliki metode untuk menampilkan daftar user, menampilkan halaman tambah user, menyimpan data user baru, mengedit user, dan lain-lain.

Contoh sederhana Controller:

// app/Http/Controllers/ExampleController.php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ExampleController extends Controller
{
    public function index()
    {
        // Logika untuk menampilkan daftar data
        // ...
        return view('index');
    }
}

Menghubungkan Controller dengan Routing

Setelah controller dibuat, kita perlu menghubungkannya dengan routing agar controller dapat menangani permintaan dari pengguna.

// routes/web.php

use App\Http\Controllers\ExampleController;

Route::get('/example', [ExampleController::class, 'index'])->name('index');

Dalam contoh di atas, kita telah menghubungkan setiap metode di controller ExampleController dengan routing yang sesuai menggunakan metode HTTP yang sesuai Selain itu, kita memberikan nama (name) pada masing-masing route, sehingga kita dapat dengan mudah merujuk ke route tersebut dalam kode aplikasi kita.