Request & Response

Membaca input pengguna, mengirim berbagai jenis respons, redirect dengan flash message, dan JSON.

Part 6 dari 26 ± 40 menit Gratis

Objek Request

Illuminate\Http\Request membungkus semua yang dikirim klien: URL, metode, header, query string, body form/JSON, berkas, cookie, dan pengguna yang login. Dapatkan lewat type-hint di method controller.

Membaca input

$request->input('nama');                // dari body ATAU query; bawaan: input('nama', 'tamu')
$request->query('halaman', 1);          // khusus query string (?halaman=2)
$request->post('nama');                 // khusus body
$request->all();                        // semua input sebagai array
$request->only(['nama', 'harga']);      // hanya kunci tertentu
$request->except(['password']);         // semua kecuali
$request->has('nama');                  // ada kuncinya?
$request->filled('nama');               // ada DAN tidak kosong?
$request->boolean('aktif');             // "1","true","on","yes" → true
$request->integer('harga');             // dikonversi ke int
$request->string('nama')->trim();       // sebagai objek Stringable
$request->date('tanggal');              // sebagai Carbon

Input JSON (Content-Type: application/json) dibaca dengan cara yang sama — $request->input('nama'); untuk nested: $request->input('alamat.kota').

Informasi lain dari request

$request->method();            // 'POST'
$request->path();              // 'produk/5'
$request->url();               // URL tanpa query
$request->fullUrl();           // dengan query
$request->ip();                // IP klien
$request->header('Accept');
$request->bearerToken();       // token dari "Authorization: Bearer ..."
$request->user();              // pengguna yang login (atau null)
$request->expectsJson();       // klien minta JSON?
$request->file('foto');        // berkas unggahan
$request->hasFile('foto');

Jenis respons

return 'teks';                                   // string → text/html
return ['pesan' => 'ok'];                        // array → JSON otomatis
return $produk;                                  // model → JSON
return view('produk.show', ['produk' => $produk]); // HTML dari Blade

return response()->json(['pesan' => 'Dibuat', 'id' => 7], 201);   // JSON + status
return response('Tidak ditemukan', 404);
return response()->noContent();                  // 204
return response()->download($path);              // unduh berkas
return response($isi)->header('X-Contoh', 'nilai');

Redirect & flash message

return redirect('/produk');
return redirect()->route('produk.index');
return redirect()->route('produk.show', $produk);          // Laravel mengambil kunci dari model
return back();                                             // kembali ke halaman sebelumnya
return back()->withInput();                                // kembalikan input untuk old()
return redirect()->route('produk.index')->with('status', 'Produk disimpan');

with() menyimpan flash data di session: tersedia hanya untuk satu request berikutnya, cocok untuk pesan sukses. Tampilkan di Blade: @if (session('status')) {{ session('status') }} @endif.

Abort & error HTTP

abort(404);                         // halaman 404
abort(403, 'Tidak punya izin');
abort_if(! $user->aktif, 403);
abort_unless($request->user()->isAdmin(), 403);

API: kode status yang tepat

SituasiKode
Berhasil200
Dibuat201
Tanpa isi (hapus)204
Input tak valid422 (Laravel memakainya untuk validasi)
Belum login401
Tidak berhak403
Tidak ada404

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X