Controller adalah salah satu komponen penting dalam arsitektur MVC (Model-View-Controller) Laravel. Di chapter ini, kita akan membahas secara detail tentang Controller dan bagaimana cara menggunakannya dengan efektif.
Apa itu Controller?
Controller berperan sebagai jembatan antara request dari user dan logika aplikasi kamu. Dengan menggunakan controller, kamu bisa:
- Memisahkan logika bisnis dari route
- Membuat kode lebih terorganisir dan mudah di-maintain
- Menerapkan prinsip Single Responsibility dalam kode kamu
Membuat Controller dengan Artisan
Laravel menyediakan command line tool Artisan untuk membuat controller:
php artisan make:controller UserController
Untuk membuat Resource Controller (dengan method CRUD bawaan):
php artisan make:controller ProductController --resource
Resource Controller dan Method Bawaannya
Resource Controller datang dengan method-method bawaan yang mengikuti konvensi RESTful:
index()- Menampilkan daftar resourcecreate()- Menampilkan form untuk membuat resource barustore()- Menyimpan resource baru ke databaseshow()- Menampilkan detail resource tertentuedit()- Menampilkan form untuk edit resourceupdate()- Mengupdate resource di databasedestroy()- Menghapus resource dari database
Hubungan Controller dengan Model dan View
Controller bekerja sama dengan Model dan View untuk menghasilkan aplikasi yang terstruktur:
- Model: Controller menggunakan Model untuk berinteraksi dengan database
- View: Controller merender View untuk menampilkan data ke user
- Request: Controller memproses request dan input dari user
Contoh implementasi sederhana:
class UserController extends Controller
{
public function show($id)
{
// Ambil data dari Model
$user = User::find($id);
// Render View dengan data
return view('users.show', ['user' => $user]);
}
}
Menangani Request & Response
Controller Laravel menyediakan berbagai cara untuk menangani request dan response:
Request Handling
public function store(Request $request)
{
// Validasi input
$validated = $request->validate([
'name' => 'required|max:255',
'email' => 'required|email|unique:users'
]);
// Proses data
User::create($validated);
// Redirect dengan pesan sukses
return redirect()->route('users.index')
->with('success', 'User berhasil dibuat!');
}
Response Types
// Return view
return view('users.index', ['users' => $users]);
// Return JSON
return response()->json(['message' => 'Success']);
// Return file download
return response()->download($pathToFile);
// Return redirect
return redirect()->route('home');
Tips Best Practices
- Gunakan Resource Controller untuk operasi CRUD standar
- Validasi Input selalu di level Controller
- Jangan Terlalu Gemuk - pindahkan logika bisnis ke Service Layer jika sudah kompleks
- Gunakan Dependency Injection untuk kode yang lebih testable
- Dokumentasikan Method dengan PHPDoc untuk memudahkan tim
Kesimpulan
Controller adalah komponen krusial dalam aplikasi Laravel yang membantu kamu mengorganisir kode dengan lebih baik. Dengan memahami dan mengimplementasikan controller dengan benar, kamu bisa membuat aplikasi yang lebih maintainable dan scalable.
Langkah Selanjutnya
- Pelajari tentang Form Request untuk validasi yang lebih advanced
- Eksplorasi Service Layer untuk logika bisnis yang kompleks
- Implementasikan Resource Controller dalam project nyata
Jangan lupa follow @code.santuy untuk update tutorial Laravel lainnya! 🚀
#Laravel #PHP #WebDevelopment #Programming #BackEnd