Request & Input

Input Dasar

Semua input user dapat diakses dgn method sederhana. Tak perlu khawatir HTTP Verb yg diminta user, semua input diakses dgn cara yg sama.

Menerima Input Value

$name = Input::get('name');

Nilai Default Ketika Input Tidak Ada

$name = Input::get('name', 'Sally');

Memastikan Apakah Ada Input Tertentu

if (Input::has('name'))
{
    //
}

Mendapatkan Semua Input Dari Request

$input = Input::all();

Mengambil Sebagian Input Saja

$input = Input::only('username', 'password');

$input = Input::except('credit_card');

Ketika bekerja dgn form dgn input “array”, gunakan notasi “dot” (.) untuk mengakses ke dalam array:

$input = Input::get('products.0.name');

Note: Beberapa library JavaScript seperti Backbone kadang mengirim input ke asplikasi sebagai JSON. Cara mengaksesnya menggunakan Input::get seperti biasa.

Cookies

Semua cookies yg dibuat oleh Laravel telah di-emkripsi dan dilengkapi dgn autentikasi, artinya data tersebut akan dianggap invalid bila dirubah pada sisi client.

Menerima Isi Cookie

$value = Cookie::get('name');

Melampirkan Cookie Baru Bersama Sebuah Respon Output

$response = Response::make('Hello World');

$response->withCookie(Cookie::make('name', 'value', $minutes));

Mengantrikan Cookie Untuk Respon Berikutnya

 

Jika ingin membuat cookie sebelum membuat respon, gunakan method Cookie::queue(). Cookie tsb otomatis akan terlampir pd respon akhir aplikasi.

Cookie::queue($name, $value, $minutes);

Membuat Cookie Yg Tersimpan Selamanya

$cookie = Cookie::forever('name', 'value');

Input Lama

Kadang kita ingin menyimpan input dr satu request sampai request berikutnya. Misal, mengambil input-form setelah validasi error.

Menyimpan Sementara Input Ke Session

Input::flash();

Menyimpan Sementara Beberapa Input Ke Session

Input::flashOnly('username', 'email');

Input::flashExcept('password');

Nantinya Anda akan sering menyimpan sementara variabel input bersama dgn perintah redirect ke halaman sebelumnya, Anda dapat dgn mudah merangkai input tsb dalam perintah redirect.

return Redirect::to('form')->withInput();

return Redirect::to('form')->withInput(Input::except('password'));

Note: Anda bisa jg menyimpan/flash data lainnya antar request menggunakan class Session.

Menerima Data Lama/Sebelumnya

Input::old('username');

File

Menerima File Yg Di-Upload

$file = Input::file('photo');

Memastikan Apakah File Sudah Ter-Upload

if (Input::hasFile('photo'))
{
    //
}

Objek yg dikembalikan (return) oleh perintah tsb adalah instance dr class Symfony\Component\HttpFoundation\File\Uploaded, merupakan extend dr class PHP SplFileInfo dan menyediakan berbagai perintah untuk mengolah file.

Memindah File Yg Di-Upload

Input::file('photo')->move($destinationPath);

Input::file('photo')->move($destinationPath, $fileName);

Membaca Path File Yg Diupload

$path = Input::file('photo')->getRealPath();

Membaca Nama Asli File Yg Diupload

$name = Input::file('photo')->getClientOriginalName();

Membaca Ekstensi File Yg Diupload

$extension = Input::file('photo')->getClientOriginalExtension();

Membaca Ukuran Kapasistas File Yg Diupload

$size = Input::file('photo')->getSize();

Membaca MIME-Type File Yg Diupload

$mime = Input::file('photo')->getMimeType();

Informasi Request

Class Request menyediakan berbagai perintah untuk memeriksa HTTP-request aplikasi dan extend Symfony\Component\HttpFoundation\Request. Berikut beberapa poin pentingnya.

Membaca Request URI

$uri = Request::path();

Membaca Request Method

$method = Request::method();

if (Request::isMethod('post'))
{
    //
}

Memastikan Apakah Request Path Memiliki Pola Tertentu

if (Request::is('admin/*'))
{
    //
}

Membaca Request URL

$url = Request::url();

Membaca Request URI Segmen Tertentu

$segment = Request::segment(1);

Membaca Request Header

$value = Request::header('Content-Type');

Membaca Nilai $_SERVER

$value = Request::server('PATH_INFO');

Memastikan Apakah Request DIkirim Menggunakan HTTPS

if (Request::secure())
{
    //
}

Memastikan Apakah Request DIkirim Menggunakan AJAX

if (Request::ajax())
{
    //
}

Memastikan Apakah Request DIkirim Memiliki Content Type JSON

if (Request::isJson())
{
    //
}

Memastikan Apakah Request Meminta Data Berupa JSON

if (Request::wantsJson())
{
    //
}

Mengecek Format Respon Yg Diminta

Perintah Request::format akan memberikan format respon yg diminta berdasarkan HTTP Accept header:

if (Request::format() == 'json')
{
    //
}