Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #3: Mendalami Controller

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 /articles dengan metode GET akan diarahkan ke method index() di ArticleController.
  • Route /articles/{id} dengan metode GET akan diarahkan ke method show() di ArticleController, 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.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_q0o3sbq0o3sbq0o3
Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_ust09gust09gust0
Gemini_Generated_Image_d8a5kwd8a5kwd8a5

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek