Tentu, berikut adalah artikel tutorial tentang Controller pada Laravel.
Selamat datang kembali di seri tutorial Laravel! Setelah kita memahami bagaimana Route mengarahkan permintaan dan View menampilkan respons, kini saatnya kita fokus pada Controller. Controller adalah jantung dari logika aplikasi Laravel Anda. Mereka bertindak sebagai perantara antara Model (data) dan View (tampilan), mengatur bagaimana aplikasi Anda merespons interaksi pengguna.
Apa Itu Controller?
Controller adalah kelas PHP yang berisi method-method tindakan (action methods). Setiap action method bertanggung jawab untuk menangani permintaan HTTP spesifik dan mengontrol alur aplikasi. Tugas utama controller adalah:
- Menerima Input: Mengambil data dari permintaan pengguna (misalnya, melalui form atau URL).
- Memproses Logika: Berinteraksi dengan Model untuk mengambil atau memanipulasi data, melakukan validasi, atau menjalankan logika bisnis lainnya.
- Mempersiapkan Data: Mengirim data yang diperlukan ke View untuk ditampilkan kepada pengguna.
- Mengembalikan Respons: Mengembalikan View, melakukan redirect, mengirimkan respons JSON, atau jenis respons lainnya.
Membuat Controller
Anda dapat membuat controller menggunakan Artisan Console, alat baris perintah yang disertakan dengan Laravel. Buka terminal Anda dan navigasi ke direktori proyek Laravel Anda. Kemudian, jalankan perintah berikut:
Perintah ini akan membuat file ArticleController.php di direktori app/Http/Controllers.
Struktur Dasar Controller:
Buka file app/Http/Controllers/ArticleController.php. Anda akan melihat struktur dasar sebuah controller:
Setiap public method di dalam controller dapat diakses sebagai tindakan (action) melalui route yang sesuai.
Menulis Action Methods
Mari kita tambahkan beberapa action method ke ArticleController:
index(): Biasanya digunakan untuk menampilkan daftar sumber daya (misalnya, daftar artikel).show($id): Digunakan untuk menampilkan sumber daya spesifik berdasarkan ID.create(): Menampilkan form untuk membuat sumber daya baru.store(Request $request): Menyimpan sumber daya baru ke database.edit($id): Menampilkan form untuk mengedit sumber daya yang ada.update(Request $request, $id): Mengupdate sumber daya di database.destroy($id): Menghapus sumber daya dari database.
Perhatikan bahwa kita mengimpor Illuminate\Http\Request yang memungkinkan kita mengakses data dari permintaan HTTP.
Menghubungkan Route ke Controller Actions
Sekarang, kita perlu mendefinisikan route di routes/web.php yang akan memetakan URL ke action methods di ArticleController.
Pada contoh di atas:
- Route
/articlesdengan metode GET akan diarahkan ke methodindex()diArticleController. - Route
/articles/{id}dengan metode GET akan diarahkan ke methodshow()diArticleController, dengan parameter{id}yang akan diteruskan ke method. - Dan seterusnya untuk route lainnya.
Anda dapat mencoba mengakses URL-URL ini di browser Anda (setelah membuat view yang sesuai) untuk melihat controller bekerja. Misalnya, akses http://nama-proyek-anda.test/articles untuk melihat daftar artikel (jika Anda telah mengimplementasikan logika tersebut di index() dan membuat view yang sesuai).
Mengirim Data ke View dari Controller
Di dalam action method, Anda seringkali perlu mengambil data dari Model dan mengirimkannya ke View untuk ditampilkan. Anda dapat melakukan ini dengan menggunakan fungsi view():
Data dikirim ke view sebagai array asosiatif, di mana kunci array menjadi nama variabel yang tersedia di dalam view.
Resource Controller
Laravel menyediakan fitur Resource Controller yang memudahkan pembuatan controller untuk operasi CRUD (Create, Read, Update, Delete) standar. Dengan satu perintah Artisan, Anda dapat membuat controller dengan semua action methods yang umum digunakan.
Untuk mendefinisikan semua route untuk resource controller, Anda dapat menggunakan Route::resource() di routes/web.php:
Ini akan secara otomatis membuat route-route yang sesuai untuk semua tindakan CRUD pada resource articles.
Kesimpulan
Controller adalah komponen penting dalam Laravel yang bertanggung jawab untuk menangani logika aplikasi dan berinteraksi antara Model dan View. Dengan memahami cara membuat controller, menulis action method, dan menghubungkannya dengan route, Anda dapat membangun alur kerja aplikasi web Anda dengan baik. Fitur Resource Controller Laravel juga sangat membantu dalam mempercepat pengembangan untuk operasi CRUD standar. Pada tutorial berikutnya, kita akan mulai membahas tentang Model dan Interaksi Database di Laravel.