Controller Laravel
Memahami konsep Controller, jenis controller, dan implementasi CRUD pada Laravel
1. Pengertian Controller
Controller pada Laravel digunakan untuk mengatur logika aplikasi. Controller menjadi penghubung antara Model dan View dalam arsitektur MVC. Semua proses seperti mengambil data dari database, memproses input user, dan mengirim data ke view dilakukan di controller.
Alur kerja Controller dalam Laravel:
Route → Controller → Model → Controller → View
Artinya:
- User mengakses URL
- Route memanggil Controller
- Controller mengambil data dari Model
- Controller mengirim data ke View
- View ditampilkan ke user
2. Membuat Controller
Controller dapat dibuat menggunakan artisan command Laravel.
php artisan make:controller MahasiswaController
Lokasi file controller:
app/Http/Controllers/MahasiswaController.php
Contoh controller:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
public function index()
{
return “Halaman Mahasiswa”;
}
}
—
3. Menghubungkan Controller dengan Route
Controller tidak akan berjalan jika belum dihubungkan dengan route.
routes/web.php
use App\Http\Controllers\MahasiswaController;
Route::get(‘/mahasiswa’, [MahasiswaController::class,’index’]);
Akses URL:
http://localhost:8000/mahasiswa
—
4. Controller Mengirim Data ke View
Controller dapat mengirim data ke view menggunakan fungsi view().
Controller
public function index()
{
$data = “Data Mahasiswa”;
return view(‘mahasiswa.index’,compact(‘data’));
}
View
{{$data}}
—
5. Controller Mengambil Data dari Model
Controller biasanya digunakan untuk mengambil data dari Model kemudian dikirim ke View.
use App\Models\Mahasiswa;
public function index()
{
$data = Mahasiswa::all();
return view(‘mahasiswa.index’,compact(‘data’));
}
—
6. Resource Controller
Laravel menyediakan Resource Controller untuk membuat controller CRUD secara otomatis.
php artisan make:controller MahasiswaController –resource
Method yang dibuat:
index()
create()
store()
show()
edit()
update()
destroy()
—
7. Fungsi Method Resource
| Method | Fungsi |
|---|---|
| index() | Menampilkan data |
| create() | Menampilkan form tambah |
| store() | Menyimpan data |
| show() | Menampilkan detail |
| edit() | Menampilkan form edit |
| update() | Update data |
| destroy() | Hapus data |
8. Contoh Controller CRUD
use App\Models\Mahasiswa;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
public function index()
{
$data = Mahasiswa::all();
return view(‘mahasiswa.index’,compact(‘data’));
}
public function create()
{
return view(‘mahasiswa.create’);
}
public function store(Request $request)
{
Mahasiswa::create($request->all());
return redirect(‘/mahasiswa’);
}
public function edit($id)
{
$data = Mahasiswa::find($id);
return view(‘mahasiswa.edit’,compact(‘data’));
}
public function update(Request $request,$id)
{
$data = Mahasiswa::find($id);
$data->update($request->all());
return redirect(‘/mahasiswa’);
}
public function destroy($id)
{
$data = Mahasiswa::find($id);
$data->delete();
return redirect(‘/mahasiswa’);
}
}
—
9. Request pada Controller
Controller dapat menerima input dari form menggunakan Request.
use Illuminate\Http\Request;
public function store(Request $request)
{
$nama = $request->nama;
}
Mengambil semua input
$request->all();
—
10. Redirect Controller
Controller dapat melakukan redirect setelah proses selesai.
return redirect(‘/mahasiswa’);
Redirect dengan pesan
return redirect(‘/mahasiswa’)
->with(‘success’,’Data berhasil disimpan’);
—
11. Controller dengan Parameter
public function show($id)
{
return $id;
}
Route
Route::get(‘/mahasiswa/{id}’,[MahasiswaController::class,’show’]);
—
Mahasiswa telah memahami:
- Pengertian Controller
- Controller dalam MVC
- Membuat controller
- Resource controller
- Controller CRUD
- Request
- Redirect
- Controller parameter
