#Input Trimming & Normalization
Secara default, Laravel menyertakan Trim\Strings
dan Convert\Empty\Strings\ToNull
middleware dalam tumpukan middleware global aplikasi Anda. Middleware ini terdaftar di stack oleh kelas. Middleware ini akan secara otomatis memangkas semua bidang string yang masuk pada permintaan, serta mengkonversi bidang string kosong . Ini memungkinkan Anda untuk tidak perlu khawatir tentang masalah normalisasi ini di route dan controller Anda.App\Http\Kernel\
null
Jika Anda ingin menonaktifkan ini, Anda dapat menghapus dua middleware dari tumpukan middleware aplikasi Anda dengan menghapusnya dari $middleware
properti kelas Anda .App\Http\Kernel
#Retrieving Input
Mengambil Semua Data Input
Anda juga dapat mengambil semua data input sebagai metode array
menggunakan all
:
$input = $request->all();
Mengambil Nilai Input
Dengan menggunakan beberapa metode sederhana, Anda dapat mengakses semua input pengguna dari instance Anda tanpa khawatir tentang kata kerja HTTP mana yang digunakan untuk permintaan tersebut. Terlepas dari kata kerja HTTP, metode ini dapat digunakan untuk mengambil input pengguna:Illuminate\Http\Request
input
$name = $request->input('name');
Anda dapat memberikan nilai default sebagai argumen kedua ke input
metode. Nilai ini akan dikembalikan jika nilai input yang diminta tidak ada pada permintaan:
$name = $request->input('name', 'Sally');
Saat bekerja dengan formulir yang berisi input array, gunakan notasi "dot" untuk mengakses array:
$name = $request->input('products.0.name');
$names = $request->input('products.*.name');
Anda dapat memanggil input
metode tanpa argumen apa pun untuk mengambil semua nilai input sebagai array asosiatif:
$input = $request->input();
Mengambil Input Dari String Query
Sementara input
metode mengambil nilai dari seluruh permintaan muatan (termasuk string kueri), query
metode hanya akan mengambil nilai dari string kueri:
$name = $request->query('name');
Jika data nilai string kueri yang diminta tidak ada, argumen kedua untuk metode ini akan dikembalikan:
$name = $request->query('name', 'Helen');
Anda dapat memanggil query
metode tanpa argumen apa pun untuk mengambil semua nilai string kueri sebagai array asosiatif:
$query = $request->query();
Mengambil Input Melalui Properti Dinamis
Anda juga dapat mengakses input pengguna menggunakan properti dinamis . Misalnya, jika salah satu formulir aplikasi Anda berisi bidang, Anda dapat mengakses nilai bidang seperti:Illuminate\Http\Request
name
$name = $request->name;
Saat menggunakan properti dinamis, Laravel pertama-tama akan mencari nilai parameter dalam payload permintaan. Jika tidak ada, Laravel akan mencari bidang di parameter rute.
Mengambil Nilai Input JSON
Saat mengirim permintaan JSON ke aplikasi Anda, Anda dapat mengakses data JSON melalui input
metode selama header permintaan diatur dengan benar . Anda bahkan dapat menggunakan sintaks "dot" untuk menggali array JSON:Content-Type
application/json
$name = $request->input('user.name');
Mengambil Sebagian Data Input
Jika Anda perlu mengambil subset dari data input, Anda dapat menggunakan only
dan except
metode. Kedua metode ini menerima satu array
atau beberapa daftar argumen yang dinamis:
$input = $request->only(['username', 'password']);
$input = $request->only('username', 'password');
$input = $request->except(['credit_card']);
$input = $request->except('credit_card');
Menentukan Jika Suatu Nilai Input Hadir
Anda harus menggunakan has
metode ini untuk menentukan apakah suatu nilai ada pada permintaan. The has
method mengembalikan true
jika nilai hadir pada permintaan:
if ($request->has('name')) {
//
}
Ketika diberi array, has
metode akan menentukan apakah semua nilai yang ditentukan ada:
if ($request->has(['name', 'email'])) {
//
}
Jika Anda ingin menentukan apakah suatu nilai ada pada permintaan dan tidak kosong, Anda dapat menggunakan filled
metode ini:
if ($request->filled('name')) {
//
}
#Old Input
Laravel memungkinkan Anda menyimpan input dari satu permintaan selama permintaan berikutnya. Fitur ini sangat berguna untuk mengisi kembali formulir setelah mendeteksi kesalahan validasi. Namun, jika Anda menggunakan fitur validasi yang disertakan Laravel , kemungkinan Anda tidak perlu menggunakan metode ini secara manual, karena beberapa fasilitas validasi built-in Laravel akan memanggil mereka secara otomatis.
Input Berkedip Ke Sesi (Flashing Input To The Session)
The flash
metode pada kelas akan berkedip input saat ini ke sesi sehingga tersedia selama permintaan berikutnya pengguna ke aplikasi:Illuminate\Http\Request
$request->flash();
Anda juga dapat menggunakan flashOnly
dan flashExcept
metode untuk mem-flash sebagian dari data permintaan ke sesi. Metode ini berguna untuk menjaga informasi sensitif seperti kata sandi keluar dari sesi:
$request->flashOnly(['username', 'email']);
$request->flashExcept('password');
Input Berkedip Kemudian Mengarahkan (Flashing Input Then Redirecting)
Karena Anda sering ingin mem-flash input ke sesi dan kemudian mengarahkan ulang ke halaman sebelumnya, Anda dapat dengan mudah menghubungkan input flashing ke redirect menggunakan withInput
metode:
return redirect('form')->withInput();
return redirect('form')->withInput(
$request->except('password')
);
Mengambil Input Lama (Retrieving Old Input)
Untuk mengambil input yang di-flash dari permintaan sebelumnya, gunakan old
metode pada Request
instance. Metode old
akan menarik data masukan sebelumnya melintas dari sesi :
$username = $request->old('username');
Laravel juga menyediakan bantuan global old
. Jika Anda menampilkan input lama dalam templat Blade , akan lebih mudah menggunakan old
helper. Jika tidak ada input lama untuk bidang yang diberikan, null
akan dikembalikan:
<input type="text" name="username" value="{{ old('username') }}">
#Cookies
Mengambil Cookie Dari Permintaan
Semua cookie yang dibuat oleh framework Laravel dienkripsi dan ditandatangani dengan kode otentikasi, artinya cookie tersebut akan dianggap tidak sah jika telah diubah oleh klien. Untuk mengambil nilai cookie dari permintaan, gunakan cookie
metode ini pada contoh:IlluminateHttpRequest
$value = $request->cookie('name');
Atau, Anda dapat menggunakan Cookie
fasad untuk mengakses nilai cookie:
use Illuminate\Support\Facades\Cookie;
$value = Cookie::get('name');
Melampirkan Cookies Ke Tanggapan
Anda dapat melampirkan cookie ke instance keluar menggunakan metode ini. Anda harus memasukkan nama, nilai, dan jumlah menit cookie harus dianggap valid untuk metode ini:Illuminate\Http\Response
cookie
return response('Hello World')->cookie(
'name', 'value', $minutes
);
The cookie
Metode juga menerima argumen lebih beberapa yang jarang digunakan. Secara umum, argumen ini memiliki tujuan dan makna yang sama dengan argumen yang akan diberikan kepada metode setcookie asli PHP :
return response('Hello World')->cookie(
'name', 'value', $minutes, $path, $domain, $secure, $httpOnly
);
Atau, Anda dapat menggunakan Cookie
fasad untuk "mengantri" cookie untuk lampiran ke respons keluar dari aplikasi Anda. The queue
Metode menerima Cookie
contoh atau argumen yang diperlukan untuk membuat sebuah Cookie
contoh. Cookie ini akan dilampirkan pada respons keluar sebelum dikirim ke browser:
Cookie::queue(Cookie::make('name', 'value', $minutes));
Cookie::queue('name', 'value', $minutes);
Membuat Instance Cookies
Jika Anda ingin membuat sebuah instance yang dapat diberikan kepada instance respons di lain waktu, Anda dapat menggunakan helper global . Cookie ini tidak akan dikirim kembali ke klien kecuali jika dilampirkan ke instance respon:Symfony\Component\Http\Foundation\Cookie
cookie
$cookie = cookie('name', 'value', $minutes);
return response('Hello World')->cookie($cookie);
http request laravel
tutorial laravel
laravel