CakePHP3で現在ページのURL・パスを取得する

スポンサーリンク

CakePHP のコントローラーで現在のURL/パスを取得する方法です。Router::url(), Router::reverse() などのメソッドを使う。

— 環境 —
CakePHP 3.1.1
PHP 5.5.19

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

コントローラーで Router クラス利用の宣言

Router クラスを利用するので、まずは以下をコントローラー冒頭に追記する。

以降の説明では、現在ページの URL が、

であるとします。

Router::url() で現在の URL を取得

ドメイン部分を含まずに、現在ページのURLを取得する。

ドメイン部を含んで現在のURLを取得。

両者とも、GET リクエストのパラメータの部分は含まれません。

GET リクエストのパラメータを含んで現在の URL を取得

GET のリクエストパラメータを含んで、現在の URL を取得するには Router::reverse() メソッドを使います。Route::reverse() は、渡されたパラメータから URL の文字列に戻す(reverse する)メソッド。

第一引数にリクエストパラメータ($this->request)を指定して使う。ドメイン部分を含まない場合は、第二引数に false を指定します。

第二引数に true を指定すると、ドメイン部分を含んで現在の URL を取得します。

以上です。

スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
 
スポンサーリンク

Leave Your Message!