- 更新日: 2015年11月18日
- PHP & CakePHP
CakePHP3で現在ページのURL・パスを取得する
スポンサーリンク
CakePHP のコントローラーで現在のURL/パスを取得する方法です。Router::url(), Router::reverse() などのメソッドを使う。
— 環境 —
CakePHP 3.1.1
PHP 5.5.19
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
コントローラーで Router クラス利用の宣言
Router クラスを利用するので、まずは以下をコントローラー冒頭に追記する。
1 |
use Cake\Routing\Router; |
以降の説明では、現在ページの URL が、
1 2 3 |
http://example.com/bookmarks?hoge=fuga |
であるとします。
Router::url() で現在の URL を取得
ドメイン部分を含まずに、現在ページのURLを取得する。
1 2 |
Router::url(); // => '/bookmarks' |
ドメイン部を含んで現在のURLを取得。
1 2 |
Router::url(NULL, false); // => 'http://example.com/bookmarks' |
両者とも、GET リクエストのパラメータの部分は含まれません。
GET リクエストのパラメータを含んで現在の URL を取得
GET のリクエストパラメータを含んで、現在の URL を取得するには Router::reverse() メソッドを使います。Route::reverse() は、渡されたパラメータから URL の文字列に戻す(reverse する)メソッド。
第一引数にリクエストパラメータ($this->request)を指定して使う。ドメイン部分を含まない場合は、第二引数に false を指定します。
1 2 |
Router::reverse($this->request, false); // => '/bookmarks?hoge=fuga' |
第二引数に true を指定すると、ドメイン部分を含んで現在の URL を取得します。
1 2 |
Router::reverse($this->request, true); // => 'http://example.com/bookmarks?hoge=fuga' |
以上です。
スポンサーリンク
私は Ruby on Rails の前は、PHP & CakePHP を使っていました(今も使いますけど)。PHP についてはオライリーの本を中心に軽く10冊以上は読み込みました。
<< 前の記事 : CakePHP3でDBテーブルを使わないモデル
- PHP & CakePHP の関連記事
- PHP+MySQLでNo such file or directoryエラー
- bin/cakeコマンドでintlエラーが出る場合の対処(CakePHP)
- CakePHPアプリケーションをCapistranoでデプロイ
- Integrity constraint violation:Column ‘created’ in order clause is ambiguousエラー/CakePHP
- CakePHPでDB関連テーブルのレコード・データを取得
- CakePHPでカラム属性に別名/エイリアスを付ける仮想フィールド
- CakePHPで日付選択フォームのカスタマイズ
- CakePHP3で現在のコントローラー名・アクション名を取得
- PHPインストールでconfigure: error: freetype.h not foundエラー
- CakePHPでログイン後に元のページにリダイレクトさせる
Leave Your Message!