Assalamu alaikum Wr. Wb
Salam Pinter Bareng Komputer, ...zero bit...
Laravel merupakan framework PHP yang menawarkan banyak fitur yang memudahkan kita sebagai web developer. Salah satu fitur utama Laravel adalah konsep MVC (Model-View-Controller) yang digunakan di Laravel, yang membagi logika aplikasi menjadi tiga komponen utama, yaitu Model, View, dan Controller.
Dalam MVC, Model dan Controller adalah dua komponen dengan konsep yang berbeda dan juga memiliki peran yang berbeda. Controller pada Laravel juga merupakan bagian dari konsep MVC yang bertanggung jawab sebagai pengontrol alur aplikasi antara Model dan View. Controller mengatur permintaan dari pengguna, lalu memanggil Model yang sesuai dan mengirimkan data tersebut ke View. Controller juga berperan untuk memberikan response kepada pengguna dengan menyesuaikan halaman atau tampilan yang ditampilkan ke pengguna sesuai dengan permintaan yang diterima. Dalam hal ini, Controller bertindak sebagai perantara antara Model dan View.
Arus data dalam Laravel |
Selanjutnya kita akan membahas bagaimana cara membuat Controller yang akan kita gunakan untuk menangani logika API, sedangkan pembuatan Model sudah dibahas dalam tutorial sebelumnya (Membuat Tabel Produk).
Berikut adalah langkah - langkah untuk membuat Controller di dalam projek Laravel :
- Buka projek Laravel dengan VSCode.
- Buka Terminal di dalam VSCode kemudian ketikkan perintah berikut ini untuk menciptakan file Controller dan juga function - function yang khusus untuk menangani data Produk:
- Perintah di atas setelah dijalankan akan menghasilkan sebuah file Controller dengan nama ProdukControlle.php di dalam subfolder App/Http/Controllers lengkap dengan function - function untuk melakukan proses CRUD data Produk.
- Langkah selanjutnya adalah mengisikan script untuk setiap function yang telah dibuatkan sesuai kebutuhan.
- Untuk informasi mengenai Validate di dalam Laravel silakan baca DI SINI.
- Untuk informasi mengenai status response seperti angka 200, 201, 204 dan 404 dapat dibaca DI SINI.
php artisan make:controller ProdukController --api
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Produk; //memanggil Model Produk
class ProdukController extends Controller
{
//function utk menampilkan data produk
public function index(){}
//function utk menyimpan data produk baru
public function store(Request $request){}
//function utk menampilkan data produk sesuai id
public function show(string $id){}
//function utk menyimpan data hasil edit
public function update(Request $request, string $id){}
//function utk menghapus data produk sesuai id
public function destroy(string $id){}
}
<?php namespace App\Http\Controllers; use Illuminate\Http\Request;
use App\Models\Produk;
//memanggil Model Produk class ProdukController extends Controller { //function utk menampilkan data produk public function index(){
return response()->json(Produk::all(), 200);
} //function utk menyimpan data produk baru public function store(Request $request){
$validasiData = $request->validate([ 'namaproduk' => 'required|max:255', 'deskripsi' => 'required', 'harga' => 'required|numeric' ]); $hsl = Produk::create($validasiData); return response()->json($hsl, 201);
} //function utk menampilkan data produk sesuai id public function show(string $id){
$produk = Produk::find($id); if($produk) { return response()->json($produk, 200); }else{ return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404); }
} //function utk menyimpan data hasil edit public function update(Request $request, string $id){
$validasiData = $request->validate([ 'namaproduk' => 'required|max:255|unique:produks,namaproduk,'.$id, 'deskripsi' => 'required', 'harga' => 'required|numeric' ]); $produk = Produk::find($id); $produk->update($validasiData); if($produk) { return response()->json($produk, 200); }else{ return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404); }
} //function utk menghapus data produk sesuai id public function destroy(string $id){
$produk = Produk::find($id); $produk->delete(); if($produk) { return response()->json(null, 204); }else{ return response()->json(['pesan' => 'Data Produk tidak ditemukan'], 404); }
} }
Semoga artikel ini bermanfaat.
0 comments:
Posting Komentar