Skip to content

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 ParameterTipe DataDefaultDeskripsi
contentmixed[]Isi dari JSON body yang ingin dikirimkan ke frontend. Bisa berupa array, objek, atau tipe data lainnya.
codeint200Kode HTTP yang menandai status dari response, misalnya 200 untuk sukses, 404 untuk tidak ditemukan, dll.
messagestring'Success'Pesan yang berhubungan dengan status kode HTTP, memberikan informasi lebih lanjut terkait hasil response.

Return Value

JsonResponse → Mengembalikan response JSON dengan struktur:

json
{
  "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 ParameterTipe DataDefaultDeskripsi
contentLengthAwarePaginatorRequiredData yang dipaginasi, biasanya adalah hasil dari query database yang menggunakan paginator.
codeint200Kode HTTP yang menandakan status response.
messagestring'Success'Pesan terkait status kode HTTP.

Return Value

JsonResponse → Mengembalikan response JSON dengan informasi mengenai data yang dipaginasi:

json
{
  "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 ParameterTipe DataDefaultDeskripsi
contentCollection | array | LengthAwarePaginatorRequiredData yang akan dikembalikan, bisa berupa array, collection, atau paginator.
messagestring''Pesan untuk status response.
codeint200Kode HTTP yang menandakan status response.

Return Value

JsonResponse → Mengembalikan response JSON yang disesuaikan:

  • Jika content adalah LengthAwarePaginator, menggunakan returnPaginateJson.
  • 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 ParameterTipe DataDefaultDeskripsi
arrayToCountarrayRequiredArray yang berisi angka-angka yang akan dihitung rata-ratanya.
withoutZerobooltrueJika true, nilai 0 akan diabaikan dalam perhitungan rata-rata.
returnIfEmptyfloat|int |string0Nilai yang akan dikembalikan jika array kosong atau tidak ada angka yang memenuhi kriteria.
associativeKeystring|nullnullJika array adalah array asosiatif (array of object), masukkan key yang ingin dihitung rata-ratanya.

Penjelasan Fungsi

  1. Cek jika array kosong:
    Fungsi pertama-tama akan memeriksa apakah array kosong menggunakan count(). Jika kosong, maka fungsi akan mengembalikan nilai yang ditentukan dalam parameter returnIfEmpty.

  2. Ekstraksi nilai berdasarkan key (untuk array asosiatif):
    Jika parameter associativeKey diberikan, fungsi akan mengekstrak nilai-nilai yang sesuai dengan key tersebut menggunakan array_column().

  3. Filter nilai non-numerik:
    Fungsi kemudian menyaring nilai-nilai yang bukan angka dengan array_filter() dan hanya mempertahankan nilai-nilai numerik.

  4. Filter angka nol (jika withoutZero = true):
    Jika withoutZero diset ke true, maka array akan difilter untuk menghapus angka yang bernilai 0.

  5. 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 mengembalikan 0.

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:

php
return $this->countAverage([1, 2, 3, 4, 5]); // Output: 3

Contoh penggunaan untuk array asosiatif:

php
$data = [
    ['score' => 10],
    ['score' => 15],
    ['score' => 20]
];
return $this->countAverage($data, true, 0, 'score'); // Output: 15