Tutorial Sebelumnya:
Tutorial Laravel #6: Passing Data Controller ke View Laravel
Request Data pada Laravel – Request data adalah proses menerima dan menangkap data. Dalam bahasa pemrograman method request data yang biasa kita gunakan adalah method GET dan POST. Perintah tersebut berfungsi untuk menerima dan menangkap data yang kita kirim dari form input dan dari URL.
Dalam Laravel cara yang kita gunakan untuk menangkap data dikenal dengan istilah Request.
Ada dua proses request data atau penerimaan data pada laravel, yaitu:
- Menerima Data dari URL Laravel
- Menerima Data dari Form Input Laravel
Request Data dari URL Laravel
Pertama kita akan belajar menangkap data dari URL. Silahkan buka file web.php yang berada dalam folder routes.
Buatlah route baru seperti dibawah ini:
Route::get('santri/{nama}', [SantriController::class, 'getNama']);
Perhatikan kode di atas, kita membuat route baru dengan parameter pertama kita buat dengan “santri”, parameter kedua kita menangkap datanya dengan menuliskan syntax “{nama}“.
Ketika mengakses localhost:8000/santri/ayongoding, maka akan menjalankan funciton “getNama” pada SantriController.
Sekarang kita akan membuat function pada SantriController sesuai dengan nama route yang kita buat yaitu “getNama“.
Silahkan Buka file SantriController yang sudah kita buat pada tutorial sebelumnya, kemudian tambahkan function berikut:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SantriController extends Controller
{
public function getNama($nama)
{
return $nama;
}
}
Perhatikan kode di atas, kita telah membuat function “getNama” dengan menangkap data yang dikirim dari route yang kita buat.
Jadi untuk menangkap data dari route tadi ( {nama} ), tinggal kita menuliskan $nama dalam parameter function nya seperti pada bagian getNama($nama)
, kemudian bisa langsung dapat kita return menggunakan variabel yang sama yaitu $nama.
Sekarang kita lihat hasilnya, coba jalankan project Laravel kita kemudian akses localhost:8000/santri/ayongoding pada web browser.
Perhatikan pada gambar di atas, kita mengirimkan data “ayongoding” pada URL. Maka controller kita akan me-return datanya langsung sesuai apa yang kita ketikkan pada URL.
Request Data dari Inputan Laravel
Kita sudah belajar menangkap data dari URL Laravel, selanjutnya kita belajar menangkap data dari inputan form Laravel, kita akan menggunakan method POST.
Sekarang kita akan membuat dua buah route baru, seperti dibawah ini:
Route::get('pendaftaran', [SantriController::class, 'pendaftaran']);
Route::post('pendaftaran/proses', [SantriController::class, 'proses']);
Perhatikan kode di atas, pada route “pendaftaran” kita akan memerintahkan function pendaftaran yang ada dalam SantriController menggunakan fungsi get(). Sedangkan pada route “pendaftaran/proses” kita memerintahkan function proses untuk menangkap data yang kita kirim dari form menggunakan fungsi post().
Kemudian kita masuk ke controller, silahkan buka file SantriController buat sebuah function dengan nama pendaftaran. Pada function pendaftaran ini kita memanggil view pendaftaran sebagai tampilan untuk form inputannya.
Berikut kode dari function pendaftaran yang berada dalam SantriController:
public function pendaftaran()
{
return view('pendaftaran');
}
Pada function pendaftaran ini kita memanggil view pendaftaran, jadi sekarang kita buat sebuah view baru. Buat view baru dengan nama pendaftaran.blade.php.
Isi dari file view pendaftaran adalah sebagai berikut:
<!DOCTYPE html>
<html>
<head>
<title>Ayo Ngoding - Request Data Laravel</title>
</head>
<body>
<h3>Form Pendaftaran</h3>
<form action="pendaftaran/proses" method="post">
{{csrf_field()}}
Nama :
<input type="text" name="nama">
<br/>
<br/>
Alamat :
<input type="text" name="alamat">
<br/>
<hr/>
<input type="submit" value="Simpan">
</form>
</body>
</html>
Perhatikan form di atas, pada form di atas kita membuat {{csrf_field}}. CSRF adalah singkatan dari Cross-site request forgery yang merupakan sebuah serangan yang dilakukan oleh pengguna yang tidak terautentikasi untuk mengeksekusi perintah. Untuk mengatasi ini, Laravel sudah menyediakan CSRF Token. Nantinya token inilah yang melakukan verifikasi apakah request yang diberikan memang berasal dari user yang bersangkutan.
Dengan membuat kode {{csrf_field}} artinya kita telah membuat sebuah input dengan type hidden dan name _token, seperti berikut ini:
<input type="hidden" name="_token" value="QQtzCXZYXGeWiPHoK4MJ62rtfSlex9gPqQganbv2">
Setiap kali kita akan membuat form, kita harus memasukkan
{{csrf_field}}
seperti pada kode view pendaftaran di atas.
Pada form yang sudah kita buat di atas, kita mengatur actionnya ke “pendaftaran/proses” sesuai route yang ada di file web.php.
Maka kita akan membuat function lagi dengan nama proses() pada file controller SantriController. Berikut kode dari function proses yang berada dalam SantriController:
public function proses(Request $request)
{
$nama = $request->nama;
$alamat = $request->alamat;
return 'Nama: '.$nama.', Alamat: '.$alamat;
}
Jadi isi keseluruhan dari file SantriController.php adalah seperti berikut:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SantriController extends Controller
{
public function getNama($nama)
{
return $nama;
}
public function pendaftaran()
{
return view('pendaftaran');
}
public function proses(Request $request)
{
$nama = $request->nama;
$alamat = $request->alamat;
return 'Nama: '.$nama.', Alamat: '.$alamat;
}
}
Untuk menangkap data yang dikirim dari form, kita bisa menangkap datanya dengan mendeklarasikan “Request” pada parameter function proses, dan di lanjutkan dengan menuliskan nama variabel tempat kita menyimpan data-data yang dikirim dari form ke dalam sebuah variabel. Pada contoh di atas semua data inputan kita simpan dalam variabel $request. Baru kemudian kita pecah data-data yang kita tangkap dengan menuliskan data apa yang ingin kita ambil (sesuai dengan nama input pada form masing-masing).
Sekarang coba kita jalankan project laravel dengan mengarah ke localhost:8000/pendaftaran.
Setelah mengisi form dengan nama dan alamat, klik tombol simpan untuk submit data.
Saya mengisi dengan Nama Aries dan Alamat Kota Payakumbuh. Maka hasilnya seperti berikut:
Kita telah berhasil menangkap data dari form (route pendaftaran) dan memproses nya dalam route pendaftaran/proses.
Sekian tutorial tentang Request Data Pada Laravel. Pada tutorial selanjutnya kita akan belajar Konfigurasi Database pada Laravel.
Tutorial Selanjutnya:
Tutorial Laravel #8: Konfigurasi Database MySQL di Laravel
Leave a Reply