Wed Dec 2019 1 year ago

Memahami HTTP Requests Pada Laravel 5.8 Lengkap

#Mengakses Request

Untuk mendapatkan contoh HTTP Request saat ini melalui dependency injection, Anda harus mengetikkan-petunjuk kelas pada metode controller Anda. Contoh request yang masuk akan secara otomatis di injection oleh service container: Illuminate\Http\Request

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Store a new user.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        $name = $request->input('name');

        //
    }
}

Depedency Injection & Route Parameters

Jika method controller Anda juga mengharapkan input dari parameter route Anda harus mencantumkan parameter route Anda setelah dependensi Anda yang lain. Misalnya, jika route Anda didefinisikan seperti itu:

Route::put('user/{id}', 'UserController@update');

Anda masih dapat mengetikkan petunjuk dan mengakses parameter route Anda dengan mendefinisikan method controller Anda sebagai berikut: Illuminate\Http\Requestid

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Update the specified user.
     *
     * @param  Request  $request
     * @param  string  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }
}

Accessing The Request Via Route Closures

Anda juga dapat mengetik-petunjuk kelas pada Penutupan route. Service Container akan secara otomatis menyuntikkan request masuk ke dalam Penutupan ketika dieksekusi: IlluminateHttpRequest

use Illuminate\Http\Request;

Route::get('/', function (Request $request) {
    //
});

 

 

Request Path & method 

Mesin virtual menyediakan berbagai method untuk memeriksa HTTP request untuk aplikasi Anda dan memperluas kelas. Kami akan membahas beberapa metode paling penting di bawah ini. IlluminateHttpRequestSymfonyComponentHttpFoundationRequest

 

Retrieving The request Path

The path method mengembalikan informasi path permintaan ini. Jadi, jika permintaan yang masuk ditargetkan , metode akan kembali :http://domain.com/foo/barpathfoo/bar

$uri = $request->path();

The is Method memungkinkan Anda untuk memverifikasi bahwa permintaan jalur masuk cocok dengan pola yang diberikan. Anda dapat menggunakan *karakter sebagai wildcard ketika menggunakan metode ini:

if ($request->is('admin/*')) {
    //
}

Retrieving The request URL

Untuk mengambil URL lengkap untuk request masuk, Anda dapat menggunakan metode url atau fullUrl. The url Metode akan kembali URL tanpa string query, sedangkan fullUrl metode termasuk string query:

// Without Query String...
$url = $request->url();

// With Query String...
$url = $request->fullUrl();

 

Retrieving The request Method

The method method akan mengembalikan kata kerja HTTP untuk permintaan. Anda dapat menggunakan isMethod metode ini untuk memverifikasi bahwa kata kerja HTTP cocok dengan string yang diberikan:

$method = $request->method();

if ($request->isMethod('post')) {
    //
}

 

PSR-7 Requests

Standar PSR-7 menentukan antarmuka untuk pesan HTTP, termasuk request dan respons. Jika Anda ingin mendapatkan instance request PSR-7 alih-alih request Laravel, Anda harus menginstal beberapa library terlebih dahulu. Laravel menggunakan komponen Bridge Message HTTP Symfony untuk mengonversi request dan respons Laravel yang khas menjadi implementasi yang kompatibel dengan PSR-7:

composer require symfony/psr-http-message-bridge
composer require zendframework/zend-diactoros

Setelah Anda menginstal library ini, Anda dapat memperoleh request PSR-7 dengan mengetik-mengisyaratkan antarmuka request pada route Anda. Method penutupan atau controller:

use PsrHttpMessageServerRequestInterface;

Route::get('/', function (ServerRequestInterface $request) {
    //
})
Jika Anda mengembalikan instance respons PSR-7 dari rute atau pengontrol, ia akan secara otomatis dikonversi kembali ke instance respons Laravel dan ditampilkan oleh framework.
http request laravel tutorial laravel framework laravel belajar laravel laravel