Response Return
returnJson
Menyediakan template untuk mengembalikan response JSON secara konsisten dengan struktur yang sudah ditentukan. Menggunakan fungsi ini disarankan daripada langsung menggunakan response()->json() karena memudahkan frontend dalam mengakses data.content dari response body.
Parameter
| Nama Parameter | Tipe Data | Default | Deskripsi |
|---|---|---|---|
content | mixed | [] | Isi dari JSON body yang ingin dikirimkan ke frontend. Bisa berupa array, objek, atau tipe data lainnya. |
code | int | 200 | Kode HTTP yang menandai status dari response, misalnya 200 untuk sukses, 404 untuk tidak ditemukan, dll. |
message | string | 'Success' | Pesan yang berhubungan dengan status kode HTTP, memberikan informasi lebih lanjut terkait hasil response. |
Return Value
JsonResponse → Mengembalikan response JSON dengan struktur:
{
"message": "Success",
"content": {...},
"success": true
}Jika status code adalah 200, field success akan di-set ke true.
returnPaginateJson
Menyediakan template untuk mengembalikan response JSON yang lebih kompleks, yang cocok untuk data yang dipaginasi (contoh: menggunakan LengthAwarePaginator). Template ini memberikan informasi tambahan seperti halaman maksimal, halaman saat ini, total data, dan jumlah data per halaman.
Parameter
| Nama Parameter | Tipe Data | Default | Deskripsi |
|---|---|---|---|
content | LengthAwarePaginator | Required | Data yang dipaginasi, biasanya adalah hasil dari query database yang menggunakan paginator. |
code | int | 200 | Kode HTTP yang menandakan status response. |
message | string | 'Success' | Pesan terkait status kode HTTP. |
Return Value
JsonResponse → Mengembalikan response JSON dengan informasi mengenai data yang dipaginasi:
{
"message": "Success",
"content": [...],
"success": true,
"max_page": 5,
"current_page": 2,
"per_page": 10,
"total": 50
}returnAdaptive
Mengembalikan response JSON yang disesuaikan tergantung pada jenis data yang diberikan. Jika data berupa paginator (LengthAwarePaginator), maka menggunakan template returnPaginateJson, jika tidak, akan menggunakan template returnJson.
Parameter
| Nama Parameter | Tipe Data | Default | Deskripsi |
|---|---|---|---|
content | Collection | array | LengthAwarePaginator | Required | Data yang akan dikembalikan, bisa berupa array, collection, atau paginator. |
message | string | '' | Pesan untuk status response. |
code | int | 200 | Kode HTTP yang menandakan status response. |
Return Value
JsonResponse → Mengembalikan response JSON yang disesuaikan:
- Jika
contentadalahLengthAwarePaginator, menggunakanreturnPaginateJson. - Jika tidak, menggunakan
returnJson.
countAverage
Fungsi ini digunakan untuk menghitung rata-rata dari elemen-elemen yang ada dalam sebuah array. Anda dapat menyesuaikan beberapa parameter untuk mengontrol bagaimana perhitungan dilakukan, termasuk pilihan untuk mengabaikan nilai 0 dan cara menangani array kosong.
Parameter
| Nama Parameter | Tipe Data | Default | Deskripsi |
|---|---|---|---|
arrayToCount | array | Required | Array yang berisi angka-angka yang akan dihitung rata-ratanya. |
withoutZero | bool | true | Jika true, nilai 0 akan diabaikan dalam perhitungan rata-rata. |
returnIfEmpty | float|int |string | 0 | Nilai yang akan dikembalikan jika array kosong atau tidak ada angka yang memenuhi kriteria. |
associativeKey | string|null | null | Jika array adalah array asosiatif (array of object), masukkan key yang ingin dihitung rata-ratanya. |
Penjelasan Fungsi
Cek jika array kosong:
Fungsi pertama-tama akan memeriksa apakah array kosong menggunakancount(). Jika kosong, maka fungsi akan mengembalikan nilai yang ditentukan dalam parameterreturnIfEmpty.Ekstraksi nilai berdasarkan key (untuk array asosiatif):
Jika parameterassociativeKeydiberikan, fungsi akan mengekstrak nilai-nilai yang sesuai dengan key tersebut menggunakanarray_column().Filter nilai non-numerik:
Fungsi kemudian menyaring nilai-nilai yang bukan angka denganarray_filter()dan hanya mempertahankan nilai-nilai numerik.Filter angka nol (jika
withoutZero = true):
JikawithoutZerodiset ketrue, maka array akan difilter untuk menghapus angka yang bernilai0.Menghitung rata-rata:
Fungsi akan menghitung rata-rata dengan membagi jumlah total elemen yang disaring dengan jumlah elemen yang tersisa. Jika tidak ada elemen yang tersisa setelah filter, maka akan mengembalikan0.
Return Value
Fungsi ini mengembalikan nilai rata-rata dari array yang dihitung setelah penyaringan. Jika array kosong atau tidak ada angka yang memenuhi kriteria, maka mengembalikan nilai dari returnIfEmpty.
Contoh response JSON yang bisa didapat:
return $this->countAverage([1, 2, 3, 4, 5]); // Output: 3Contoh penggunaan untuk array asosiatif:
$data = [
['score' => 10],
['score' => 15],
['score' => 20]
];
return $this->countAverage($data, true, 0, 'score'); // Output: 15