[CakePHP] GETでパラメタ・コントローラ名・アクション名を取得

photo_00019

CakePHP2でURLからコントローラー名・アクション名・パラメタなどを取得する方法です。コントローラ名・アクション名・パラメタの取得は、CakePHPでウェブを構築する上で最も利用頻度の多い作業の一つではないでしょうか。Ver1.3とは取得方法が変わっているので注意が必要です。

バージョンによる違い(GET取得)

Ver1.3から取得方法が変わりましたので、以下の表に違いをまとめておきます。

Ver1.3Ver2.x
$this->data$this->request->data
$this->params['url']['url']$this->request->url
$this->params['contoller']$this->request->controller
$this->params['action']$this->request->action
$this->params['named']$this->request->named
$this->params['pass']$this->request->pass

Ver2.xからは$this>request>取得内容の形式に統一されたので、覚えやすいですね。

利用方法

というURLの各種データを取得してみます。
「http://www.example.com/posts/index/7/?page=2&sort=asc」
CakePHP方式のURLでは「?id=7」という形だけではなく、「/7/」という表記ができるようになっています。この「/7/」を取得するのは「$this->request->pass」になっています。

通常のパラメタの部分(?page=2&sort=asc)は以下のように取得します。

  • Categories

  • タグ

  • アーカイブ

  • 最近の投稿