入力の基本
いくつかのシンプルなメソッドを用い、ユーザーの入力全部にアクセスできます。リスエストに使用されるHTTP動詞に惑わされる必要はありません。同じやり方で全ての変数にアクセスできます。
一つの値を取得する
$name = Input::get('name');
入力値が存在しない場合に、デフォルト値を取得する
$name = Input::get('name', 'Sally');
入力値が存在するか確かめる
if (Input::has('name'))
{
//
}
リクエストの全入力を取得する
$input = Input::all();
限定されたリクエスト入力のみ取得する
$input = Input::only('username', 'password');
$input = Input::except('credit_card');
「配列」入力を使ったフォームを動作させる場合、ドット記法を使い、配列にアクセスできます。
$input = Input::get('products.0.name');
注目:BackboneのようなJavascriptライブラリーはJSONでアプリケーションに入力を送ってくることでしょう。 通常と同じく
Input::get
でアクセス可能です。
クッキー
Laravelフレームワークで生成された全てのクッキーは暗号化され、認証コードで署名されます。これが意味するのは、もしクライアントにより改変されれば無効になるということです。
一つのクッキーの値を取得する
$value = Cookie::get('name');
レスポンスに新しいクッキーを付ける
$response = Response::make('Hello World');
$response->withCookie(Cookie::make('name', 'value', $minutes));
次のレスポンスのためにクッキーをキューイングする
レスポンスが生成される前に、クッキーを予めセットしておきたい場合は、Cookie::queue()
メソッドを使用してください。アプリケーションから最終的にレスポンスが返される時に、自動的にそのクッキーを添付します。
Cookie::queue($name, $value, $minutes);
永久に残るクッキーを生成する
$cookie = Cookie::forever('name', 'value');
直前の入力
あるレスポンスの入力を次のリクエストまで取っておく必要もあるでしょう。例えば、バリデーションをチェックした後のエラーで、フォームの内容を再表示する場合です。
セッションに入力値を保存する
Input::flash();
セッションに入力をいくつか保存する
Input::flashOnly('username', 'email');
Input::flashExcept('password');
しばしば以前のページヘのリダイレクトで、関係する入力を保存したい場合が起きます。リダイレクトにチェーンで入力を保存するように指定できます。
return Redirect::to('form')->withInput();
return Redirect::to('form')->withInput(Input::except('password'));
注目:その他のデーターを次のリクエストで使用したい場合は、セッションクラスを使用できます。
直前のデーターを取得する
Input::old('username');
ファイル
アップデートしたファイルを取得する
$file = Input::file('photo');
ファイルがアップロードされたか調べる
if (Input::hasFile('photo'))
{
//
}
file
メソッドがリターンするのは、Symfony\Component\HttpFoundation\File\UploadedFile
クラスのインスタンスで、PHPのSplFileInfo
を拡張しています。それにはファイルに関する様々なメソッドが提供されています。
Determining If An Uploaded File Is Valid
if (Input::file('photo')->isValid())
{
//
}
アップロードしたファイルを削除する
Input::file('photo')->move($destinationPath);
Input::file('photo')->move($destinationPath, $fileName);
アップロードしたファイルのパスを取得する
$path = Input::file('photo')->getRealPath();
アップロードしたファイルの元の名前を取得する
$name = Input::file('photo')->getClientOriginalName();
アップロードしたファイルの拡張子を取得する
$extension = Input::file('photo')->getClientOriginalExtension();
アップロードしたファイルのサイズを取得する
$size = Input::file('photo')->getSize();
アップロードしたファイルのMIMEタイプを取得する
$mime = Input::file('photo')->getMimeType();
リクエスト情報
Request
クラスはアプリケーションに対するHTTPリクエストを調べるための多くのメソッドを提供しており、Symfony\Component\HttpFoundation\Request
を拡張しています。その特徴のいくつかをご覧ください。
リクエストされたURIを取得する
$uri = Request::path();
リクエストのメソッドを取得する
$method = Request::method();
if (Request::isMethod('post'))
{
//
}
リクエスされたパスがパターンと一致するか調べる
if (Request::is('admin/*'))
{
//
}
リクエストされたURLを取得する
$url = Request::url();
リクエストのURIセグメントを取得する
$segment = Request::segment(1);
リクエストヘッダーを取得する
$value = Request::header('Content-Type');
$_SERVERから値を取得する
$value = Request::server('PATH_INFO');
リクエストがHTTPSを用いられたものか調べる
if (Request::secure())
{
//
}
リクエストがAJAXを用いられたものか調べる
if (Request::ajax())
{
//
}
リクエストはJSONコンテツタイプを持っているか判定する
if (Request::isJson())
{
//
}
リスエストがJSONを要求しているか判定する
if (Request::wantsJson())
{
//
}
リクエストされているレスポンスのフォーマットを確認する
Request::format
メソッドは、HTTP
Acceptヘッダーに基づき、要求されているリクエストのフォーマットを返します。
if (Request::format() == 'json')
{
//
}