Belajar Laravel (Chapter 14 | Tutorial HTTP Requests)
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
<?phpnamespace 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