LoginSignup
20
20

More than 5 years have passed since last update.

【CakePHP】CakeRequest

Last updated at Posted at 2015-05-19

コントローラーで$this->requestで扱うことができるCakeRequestを通してリクエスト情報にアクセスすることができる。CakeRequestのメソッドをまとめる。

data()

POSTデータを取得する。

$id = $this->request->data('id');
//=> POSTデータidの値

get()

クエリストリングの値を取得する。

$page = $this->request->query('page');
//=> クエリストリングpageの値

is()

リクエストタイプを判別する。

例)リクエストがajaxの場合に処理を行う。

if($this->request->is('ajax')){
  //ajaxの場合の処理
}
タイプ名 説明
get GETメソッドか判別する
post POSTメソッドか判別する
ajax ajaxか判別する

ちなみに、ajaxの値はHTTPヘッダのHTTP_X_REQUESTED_WITHにXMLHttpRequestが含まれているかで判別している。

referer()

リファラを取得する。

例)リファラを取得して、ポスト元のページを再描画する。

$this->redirect($this->request->referer();

clientIp()

クライアント側のIPアドレスを取得する。

$ip = $this->request->clientIp();

デフォルトでは、env('HTTP_CLIENT_IP')を、存在しない場合は、env('REMOTE_ADDR')を返却する。
パラメータにfalseを設定すると、env('HTTP_X_FORWARDED_FOR')を返却する。

header()

HTTPヘッダを取得できる。
HTTP_部分をパラメータで渡す。

例)HTTP_User-Agentを取得する。

$user_agent = $this->request->header('User-Agent');

here()

http://ドメイン/ルート/コントローラ名/アクション名
上記のルート以下を取得する。

例)アクセスログ出力のためアクセス先を取得する。

$path = $this->request->here;

プロパティのhereはクエリストリングを含めないが、here()はクエリストリングを含む。

20
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20