Tutorial Laravel #6 : Request Data

Pada saat kita belajar PHP, ada yang namanya GET dan POST untuk menerima atau menangkap data. Maka di Laravel juga sama ada istilah yang disebut dengan request pada laravel, maksud sama ada proses menerima atau menangkap data dari inputan POST dan ada juga jenis proses penengkapan dari URL.

Ada 2 proses request atau penerimaan data pada laravel, yaitu :

  • Penerimaan Data Melalui URI
  • Penerimaan Data Dari Input

Nantinya kita akan banyak menggunakan metode proses penerimaan data ini pada saat mengembangkan aplikasi menggunakan laravel, baik itu menerima atau menangkap data dari url atau menangkap data dari form input pada saat membuat proses login, CRUD pada laravel dan proses yang memerlukan pengolahan data lainnya.

Menangkap Data Melalui URI

Ada banyak cara untuk menangkap data yang dikirimkan melalui url, tapi di sini kita akan menggunakan teknik penangkapan data dari url yang sederhana dan yang paling mudah. Kita bisa menangkap data dari url dengan mensetting terlebih dulu pada bagian route laravel.

Sekarang kita buka route pada file web.php dalam project “latihan_laravel” yang sudah kita buat sebelumnya dari tutorial laravel dan buat route berikut pada route laravel (web.php).

latihan_laravel/routes/web.php

Route::get('/guru/{nama}', 'GuruController@index');

Di sini kita membuat route baru, yaitu pada parameter pertama kita buat dengan “guru” dan parameter kedua kita menangkap datanya dengan menuliskan syntax “{nama}“ untuk penamaannya bebas bisa menyesuaikan sendiri, di route ini kita juga memerintahkan untuk menjalankan controller GuruController dan method index.

Pada saat kita mengakses localhost:8000/guru/…. , maka akan dijalankan method index pada controller GuruController. Sekarang buka controller GuruController. Jika belum mempunyai controller ini, kita buat controllernya dulu dengan nama GuruController dan tulis syntax berikut :

Baca Juga  Tutorial Javascript #6 : Operator yang Wajib diketahui dalam JavaScript

latihan_laravel/app/Http/Controllers/GuruController.php

<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    
    class GuruController extends Controller
    {
        public function index($nama)
        {
            return $nama;
        }
    }

Perhatikan pada syntax di atas, kita membuat method index dengan menangkap data yang dikirim dari route tadi.

public function index($nama)
{
    return $nama;
}

Jadi untuk menangkap data dari route tadi ( {nama} ), tinggal kita tangkap di method dengan menuliskan variabel nama dalam parameter methodnya (index). Kemudian kita bisa langsung mengolah data yang ditangkap tadi, di sini kita langsung me-return data variabel nama.

Jangan lupa tambahkan sintak :

protected $namespace = 'App\\Http\\Controllers';

Pada file RouteServiceProvider.php yang ada dalam folder C:\xampp\htdocs\latihan_laravel\app\Providers\RouteServiceProvider.php supaya project tidak error.

Selanjutnya kita jalankan project latihan_laravel kita dengan url localhost:8000/guru/guruhebat

Pada contoh di atas data yg kita kirimkan adalah “guruhebat” , maka pada controller kita me-return datanya langsung, jadi data langsung tampil seperti pada gambar di atas. Intinya adalah apapun data yang dikirimkan melalui URL tadi adalah data yang ditangkap pada controller.

Menangkap Data Dari Inputan

Sekarang kita akan belajar menangkap data yang dikirimkan dari form input menggunakan form method post, sekarang buat 2 buah route lagi :

latihan_laravel/routes/web.php

Route::get('/formulir', 'GuruController@formulir');

Route::post('/formulir/proses', 'GuruController@proses');

Pada route “/formulir” kita memerintahkan untuk menjalankan method “formulir” dalam controller GuruController. dan route yang satunya lagi yaitu route “/formulir/proses” kita perintahkan untuk menjalankan method proses dalam controller GuruController dengan menggunakan fungsi post().

Karena pada route “formulir/proses” ini kita akan menangkap data post dari form, kita tambahkan method formulir pada controller GuruController.

latihan_laravel/app/Http/Controllers/GuruController.php

public function formulir(){
    return view('formulir');
}

Pada method formulir ini kita memanggil view formulir, jadi sekarang kita buat sebuah view baru. Buat view baru dengan nama formulir.blade.php.

Baca Juga  Tutorial Bootstrap #8 : Form Bootstrap

latihan_laravel/resources/views/formulir.blade.php

<!DOCTYPE html>
<html>
    <head>
        <title>Tutorial Laravel</title>
    </head>

    <body>
        <form action="/formulir/proses" method="post">
            <input type = "hidden" name = "_token" value = "<?php echo csrf_token() ?>"> 
            Nama : <input type="text" name="nama"> 
            <br/>
            Alamat : <input type="text" name="alamat"> 
            <br/>
            <input type="submit" value="Simpan">
        </form>
    </body>
</html>

Pada form di atas kita membuat form csrf token :

<input type = "hidden" name = "_token" value = "<?php echo csrf_token() ?>">

csrf pada laravel akan kita bahas pada tutorial selanjutnya.

Pada form di atas kita membuat form inputan sederhana, yaitu form inputan nama dan alamat, yang actionnya kita arahkan ke route “formulir/proses”. Karena pada route “formulir/proses” sudah kita set ke method “proses” pada controller GuruController, maka sekarang kita buat lagi sebuah method dalam controller GuruController, yaitu method proses() sebagai pemroses data yang dikirim dari form.

latihan_laravel/app/Http/Controllers/GuruController.php

public function proses(Request $request){
    $nama = $request->input('nama');
    $alamat = $request->input('alamat');
    
    return "Nama : ".$nama.", Alamat : ".$alamat;
}

Sekarang isi keseluruhan file GuruController.php adalah seperti berikut :

<?php
    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    
    class GuruController extends Controller
    {
        public function index($nama){
            return $nama;
        }

        public function formulir(){
            return view('formulir');
        }

        public function proses(Request $request){
            $nama = $request->input('nama');
            $alamat = $request->input('alamat');
            
            return "Nama : ".$nama.", Alamat : ".$alamat;
        }
    }

Untuk menangkap data yang dikirim dari form, kita bisa menangkap datanya dengan mendeklarasikan “Request” pada parameter method proses dan dilanjutkan dengan menuliskan nama variabel tempat kita menyimpan data-data yang dikirim dari form ke dalam 1 buah variabel, pada contoh di atas semua data inputannya kita simpan dalam variabel $request, baru kemudian kita pecah data-data yang kita tangkap dengan menuliskan fungsi input().

Dalam fungsi input() nya kita tulis data apa yang ingin kita ambil (sesuai dengan nama form masing-masing). Pada bagian terakhir kita tinggal me-return data nya.

Baca Juga  Tutorial Bootstrap #3 : Containers Pada Bootstrap

Sekarang kita coba akses localhost:8000/formulir dan isi formnya kemudian klik simpan.

Kita telah berhasil menangkap data dari form (route formulir) dan memprosesnya dalam route formulir/proses.

Related Post

1 Trackback / Pingback

  1. Tutorial Laravel 8 #9 : Form Validasi pada Laravel - agussuratna.net

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy