Belajar Laravel (Chapter 14 | Tutorial HTTP Requests)

Tobi Ahmad
dotlocal
Published in
4 min readApr 14, 2020

Pada framework Laravel sudah disediakan class untuk handle semua request yang masuk ke web aplikasi, misalkan:

  • Mendapatkan body formdata pada saat submit form
  • Mendapatkan query parameters

Data request yang masuk ke web Laravel dapat diambil menggunakan instance dari class Illuminate\Http\Request pada Controller yang kita buat.

Scope of This Chapter

Pada tutorial ini kita akan membahas tentang Requests pada Laravel

Mengambil URI pada Request

  • Method path() untuk menerima informasi request path
  • Method is() untuk memverifikasi apakah path sesuai dengan pola yang dibuat
  • Untuk mendapatkan semua informasi URL yang masuk bisa menggunakan method url() atau fullUrl()
  • Method method() untuk menerima informasi HTTP verb untuk request
  • Method isMethod() untuk memverifikasi HTTP verb sama atau tidak dengan value string pada logic

Contohnya:

Step 1 — Buat Controller

Buat controller TestController dengan perintah Artisan

php artisan make:controller TestController

Kemudian edit file controller

// Edit file app/Http/Controllers/TestController.php<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class TestController extends Controller
{
public function index(Request $request) {
// method path()
$path = $request->path();
echo 'Method path: '.$path;
echo '<br>';
// method is()
$pattern = $request->is('admin/*');
echo 'Method is: '.$pattern;
echo '<br>';
// method url()
$url = $request->url();
echo 'Method url : '.$url;
echo '<br>';
// method fullUrl()
$fullUrl = $request->fullUrl();
echo 'Method fullUrl : '.$fullUrl;
echo '<br>';
echo '<br>';
// method method()
$method = $request->method();
echo 'Method method : '.$method;
echo '<br>';
// method isMethod
if ($request->isMethod('post')) {
echo 'method post';
echo '<br>';
}
if ($request->isMethod('get')) {
echo 'method get';
echo '<br>';
}
exit();
}
}

Step 2 — Tambah Route

// edit file routes/web.phpRoute::get(‘/admin/post’,’TestController@index’);

Step 3 — Buka route pada browser

Jalankan perintah php artisan serve pada terminal, dan akses routes pada browser.

// Tanpa Query string
$url = $request->url();
// http://localhost:8000/admin/post
// Dengan Query string
$url = $request->fullUrl();
//http://localhost:8000/admin/post?q=makan

Mengambil Value Input

Pada laravel value input yang diisi oleh user dana diambil dengan mudah. Ada beberapa cara untuk mengambil value input request.

  • Method all()
  • Method input()
  • Method get()
  • Mengambil input value via dynamic properties

Berikut contohnya:

Step 1 — Buat View

Buat form kontak, dimana user bisa mengisi input pada form resources/views/contact.blade.php:

// edit file resources/views/contact.blade.php
<!DOCTYPE html>
<html>
<head>
<title>Contact Us</title>
</head>
<body>
<form action ="{{ url('contact') }}" method ="POST">
@csrf
<table>
<tr>
<td>Name</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td>Email</td>
<td><input type="email" name="email"/></td>
</tr>
<tr>
<td>Message</td>
<td><textarea name="message"></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="SUBMIT" value="Send"/>
</td>
</tr>
</table>
</form>
</body>
</html>

Step 2— Buat Controller

Buat controller ContactController dengan perintah Artisan:

php artisan make:controller ContactController

Kemudian edit file controller:

// Edit file app/Http/Controllers/ContactController.php
<?php
namespace App\Http\Controllers;use Illuminate\Http\Request;class ContactController extends Controller
{
public function index()
{
return view('contact');
}
public function store(Request $request)
{
// method all()
$input = $request->all();
echo 'Semua data : ';
print_r($input);
echo '<br>';
// method input()
$name = $request->input('name');
echo 'Name: '.$name;
echo '<br>';
// method get()
$email = $request->get('email');
echo 'email: '.$email;
echo '<br>';
// mengambil value field message
$message = $request->message;
echo 'message: '.$message;
echo '<br>';
exit;
}
}

Step 3— Tambahkan Routes

// edit file routes/web.phpRoute::get(‘/contact’,’ContactController@index’);
Route::post(‘/contact’,’ContactController@store’);

Step 4— Buka route pada browser

Jalankan perintah php artisan serve pada terminal, dan akses routes pada browser:

Step 5 — Hasil submit

Mengambil Value Input dari Query String

Query parameter merupakan variable yang terdapat pada URL, contohnya

http://localhost:8000/contact?from=homepage

untuk mengambil value dari variable from pada controller menggunakan class Request dengan method query()

$from = $request->query(‘from’);
// $from berisi value "homepage"

Next Chapter

HTTP Responses : https://medium.com/dotlocal/belajar-laravel-chapter-15-tutorial-http-responses-redirects-9018b212afaa

Referensi

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)

Cheers
Tobi Ahmad
Founder of Dot Local

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.