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
content
adalahLengthAwarePaginator
, 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 parameterassociativeKey
diberikan, 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
):
JikawithoutZero
diset 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: 3
Contoh penggunaan untuk array asosiatif:
$data = [
['score' => 10],
['score' => 15],
['score' => 20]
];
return $this->countAverage($data, true, 0, 'score'); // Output: 15