Komponen penting Laravel ada 3, yaitu (MVC):
- M (Model) Merupakan jembatan antara database dengan controller, model juga dapat berisi relasi antar tabel (misalnya tabel user dengan produk), dan konfigurasi tabel (misalnya kolom apa saja yang boleh diinputkan dan kolom apa saja yang tidak boleh diinputkan)
- V (View) Merupakan file yang berisi html untuk menampilkan website nya
- Controller Merupakan file yang berisikan logika dari setiap url yang ada, misalnya url domain.com/api/siswa menggunakan controller SiswaController dengan fungsi index, yang berarti logika apa yang akan di tampilkan pada domain.com/siswa akan berada di SiswaController pada fungsi index
Pada Laravel setiap route menggunakan Http Method
Setiap route pada laravel menggunakan http method, seperti Get, Post, Put, atau Delete
- GET (Digunakan untuk mengambil/menampilkan data)
- POST (Digunakan untuk mengirim/memasukan data)
- PUT (Digunakan untuk mengupdate data)
- DELETE (Digunakan untuk menghapus data)
Alur pembuatan endpoint/url pada laravel
Misalnya kita ingin membuat url seperti ini domain.com/api/siswa dan kita ingin menampilkan seluruh data siswa pada endpoint/url tersebut.
- Konfigurasi database (Jika menggunakan mongodb, pada note satunya)
- Buat Model (untuk mengatur tabel) dan Controller (untuk menyimpan logic pada endpoint/url) terlebih dahulu.
// membuat model dengan nama siswa dan controller
// option -c akan membuat controller dengan nama SiswaController
php artisan make:model Siswa -c
dan model akan di simpan pada App\Models
- Konfigurasi Model agar dapat digunakan
1. jika menggunakan mongodb, maka harus import
use MongoDB\Laravel\Eloquent\Model;
2. lalu atur collection mana yang akan digunakan (jika menggunakan mongodb)
(collection seperti tabel, jadi nanti model Siswa akan memasukan data ke dalaman collection apa, pada code di atas, model Siswa akan menyimpan data pada collection siswas
3. Lalu kita pilih kolom mana yang akan kita lindungi (lindungi maksudnya agar user tidak bisa memasukan data pada kolom tersebut) pada code di atas, kolom yang dilindugi adalah kolom _id. Jika kita menggunakan
protected $guarded
berarti user dapat mengisi pada kolom sisanya (misalnya ada kolom _id, nama, kelas, alamat, maka user tidak boleh mengisi kolom _id, dan kolom sisanya (nama, kelas, alamat) itu boleh diisi oleh user)
- Setelah itu langkah selanjutnya adalah membuat route, karena kita akan membuat API sehingga kita membuat route pada file routes/api.php
// Berikut untuk contoh route nya
Route::get('get-all-siswa-data', [SiswaController::class, 'getAllUserData');
Dengan route tersebut, sehingga nanti akan menghasilkan endpoint/url
domain.com/api/get-all-siswa-data
Lalu selanjutnya ketika kita mengakses url/endpoint tersebut, maka akan error
method getAllSiswaData not found
Ini dikarenakan pada controller yang dituju (SiswaController) itu tidak ada fungsi/method getAllSiswaData, selanjutnya kita mencoba membuat fungsi tersebut pada controller
- Controller harusnya sudah ikut terbuat pada langkah sebelumnya, sehingga kita bisa membuka controller pada folder
App\Http\Controllers
Lalu buka SiswaController.php, lalu kita buat fungsi getAllSiswaData, sehingga code nya menjadi seperti berikut
Top comments (0)